【spring】spring有哪几种配置方式

2023-05-16

目录

        • 一、说明
        • 二、配置方式
        • 三、配置示例
          • 3.1 基于xml配置文件
          • 3.2 基于注解的配置
          • 3.3 基于java的配置

一、说明

  • 1.spring有三种重要的方法提供配置元数据

二、配置方式

  • 1.基于xml配置文件,spring诞生的一种配置方式
  • 2.基于注解的配置,spring2.5+开始
  • 3. 基于java的配置,javaConfig,spring3.0+开始

三、配置示例

3.1 基于xml配置文件
  • 1.文件名为spring.xml,文件位置放入resources中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd">
	<bean id="userService" class="com.learning.beanconfig.UserService"></bean>
</beans>
package com.learning.beanconfig;

/**
 * @Author wangyouhui
 * @Description 服务类
 **/
public class UserService {
	public void print(String hello) {
		System.out.println(hello);
	}
}

package com.learning.beanconfig;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Author wangyouhui
 * @Description 应用类
 **/
public class Application {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("spring.xml");
		UserService userService = (UserService)classPathXmlApplicationContext.getBean("userService");
		userService.print("hello");
	}
}

3.2 基于注解的配置
  • 1.文件名为spring-annotation.xml,文件位置放入resources中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd">
	<!-- 设置自动扫描的包 -->
	<!-- base-package:设置一个基础包,Spring会自动扫描该包及其子包下的组件 -->
	<context:component-scan base-package="com.learning.beanannotation">

	</context:component-scan>
</beans>
package com.learning.beanannotation;

import org.springframework.stereotype.Component;

/**
 * @Author wangyouhui
 * @Description 服务类
 **/
@Component
public class UserService {
	public void print(String hello) {
		System.out.println(hello);
	}
}
package com.learning.beanannotation;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Author wangyouhui
 * @Description 应用类
 **/
public class Application {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("spring-annotation.xml");
		UserService userService = (UserService)classPathXmlApplicationContext.getBean("userService");
		userService.print("hello");
	}
}

3.3 基于java的配置
  • 1.这里是@Configuration注解,@Bean @Import等暂不介绍
package com.learning.beanjavaconfig;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration//作为配置类,代替xml文件
@ComponentScan(basePackages = {"com.learning.beanjavaconfig"})
public class SpringConfig {
}
package com.learning.beanjavaconfig;

import org.springframework.stereotype.Component;

/**
 * @Author wangyouhui
 * @Description 服务类
 **/
@Component
public class UserService {
	public void print(String hello) {
		System.out.println(hello);
	}
}

package com.learning.beanjavaconfig;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @Author wangyouhui
 * @Description 应用类
 **/
public class Application {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
		UserService userService = (UserService)annotationConfigApplicationContext.getBean("userService");
		userService.print("hello");
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【spring】spring有哪几种配置方式 的相关文章

随机推荐

  • 窗口焦点丢失问题分析

    从slog中的systemlog可以看出如下信息 xff1a 01 01 08 29 03 732 633 936 I WindowManager Relayout invis Window 42244420 u0 Keyguard mEx
  • ubuntu不能挂载U盘问题

    插上U盘一个弹窗显示不能挂载系统 就不附图了 自己也是在到处找了问题 xff0c 试了很多教程 xff0c 要么看不懂要么没用要么瞎写的 最后实测一个有用的 因为ubuntu默认不能识别U盘 解决方法 xff1a 安装exfat磁盘格式工具
  • unity3d个人版怎么改变主题=>黑色

    是有很多文章都有介绍如何使用操作 xff0c 我就不再多说 xff0c 主要是那个软件的问题 xff08 在下面我会附上winhex的下载地址和详细教程 xff09 一般会出问题的地方是试用版会出很多问题 xff0c 比如什么200k以上不
  • 【正则表达式】基础应用(匹配matches(regex))(转)

    正则表达式基础应用 匹配 字符 x 字符 x 反斜线字符 字符类 abc a b 或 c xff08 简单类 xff09 abc 任何字符 xff0c 除了 a b 或 c xff08 否定 xff09 a zA Z a 到 z 或 A 到
  • 一种动态更新flink任务配置的方法

    文章目录 1 原理2 例 xff0c 整数过滤2 1 并行度为12 2 并行度大于12 3 完整代码 参考链接 1 原理 参考Flink Spark 如何实现动态更新作业配置 xff0c 讲得比较详细 xff0c 这篇的文章的参考参考文献也
  • 一种Hudi on Flink动态同步元数据变化的方法

    文章目录 一 背景二 官方Schema Evolution例子三 Flink 43 Hudi实现Schema Evolution四 96 HoodieFlinkStreamer 96 流程浅析及扩展方法4 1 FlinkKafkaConsu
  • 一种处理Hive元数据与文件类型不同时SQL查询失败的方法

    文章目录 一 背景二 分析过程2 1 环境及测试数据2 1 1 环境2 1 2 测试数据 2 2 select语句异常分析2 2 1 异常分析2 2 2 捕获异常位置 2 3 insert overwrite语句异常分析2 3 1 异常分析
  • 一种处理Hive元数据与文件类型不同时SQL查询失败的方法(二)

    文章目录 一 异常触发SQL二 异常处理三 Hive on Spark依赖的Hive jar包部署 继上一篇之后 xff0c 又发现了一种新的报错位置 本篇对这种情况进行处理 xff0c 并验证这种处理方式是否适用于Hive on Spar
  • Hive分区表修改(增删)列

    文章目录 一 环境及测试数据二 删除列2 1 测试表test22 2 DDL删除列 xff1f 2 3 代码连接Hive Metastore删除列2 3 1 同时更新表与分区元数据 三 添加列结论参考链接 一 环境及测试数据 环境 xff1
  • python通过kerberos连接impala操作hive

    一 python2版本 1 docker基础镜像 tobyhferguson impyla tester 2 安装相关包及配置 2 1 安装包 参考python3 6 5基于kerberos认证的hive和hdfs连接调用 yum span
  • 美化Windows中的CMD/PowerShell,以及替代方案

    命令行字体美化 微软对命令会话窗口中的字体元数据有着一些苛刻的要求 xff0c 使得大部分好看的字体不能应用于CMD PowerShell xff0c 传统的有衬线字体不仅不美观还不易分清1和l 网上有各种针对一些字体改动注册表的做法 xf
  • 【获奖公布】“我的2016”主题征文活动

    还记得2015的年末 xff0c 2016的新年伊始 xff0c 你给自己定下的目标 xff0c 对自己许下的诺言么 xff1f 时光荏苒 xff0c 一年又在指缝间溜走了 xff0c 离2016的结束还剩十多天 xff0c 在接下来的这十
  • 程序员成长路线

    回顾过去 xff0c 我们会清晰地看见走过来的路线 xff0c 但面向未来我们又该如何走下去 xff1f 但凡过往 xff0c 皆为序章 xff0c 过去不可变 xff0c 未来才是希望 xff0c 而如何去规划并管理好未来的成长进化之路
  • 求解最大连通子图

    使用networkx里面的函数来求解最大连通子图 coding utf 8 34 34 34 Created on Wed Mar 11 21 38 53 2020 64 author Administrator 34 34 34 impo
  • Result Maps collection already contains value for BaseResultMap

    由于mybatis简单易学 xff0c 比起Hibername来 xff0c 更容易上手 xff0c 代码也能自动生成 这几天研究了下代码自动生成的 xff0c 参考 xff1a http 0609xiaohua iteye com blo
  • ssm测试mybatis时出现无法连接数据库驱动的错误

    org apache ibatis exceptions PersistenceException Error querying database Cause org springframework jdbc CannotGetJdbcCo
  • 表白密码:I Love you的42种密码表白方式

    字母表白数字密码 xff1a 9121522521 表白解密 xff1a 从1开始到26 xff0c 分别表示从A到Z xff0c 即 xff1a A xff08 1 xff09 B xff08 2 xff09 C xff08 3 xff0
  • 【电脑系统】c盘误操作删除EFI引导分区后,开机一直checking media

    目录 一 问题描述二 问题解决 一 问题描述 1 利用分区工具不小心将c盘中ESP分区和MSR分区合并了 xff0c 开机后一直checking media 2 用u盘装系统 xff0c 进入pe后还原重装系统后 xff0c 开机仍然是ch
  • 【面试】spring中ioc加载过程

    目录 一 加载过程1 概念态 gt 定义态2 定义态 gt 纯净态3 纯净态 gt 成熟态4 初始化5 创建完成 一 加载过程 1 概念态 gt 定义态 1 实例化一个ApplicationContext的对象 2 调用bean工厂后置处理
  • 【spring】spring有哪几种配置方式

    目录 一 说明二 配置方式三 配置示例3 1 基于xml配置文件3 2 基于注解的配置3 3 基于java的配置 一 说明 1 spring有三种重要的方法提供配置元数据 二 配置方式 1 基于xml配置文件 xff0c spring诞生的