Spring自动装配
1. 装配Bean的三种方式
1)隐式的Bean发现机制和自动装配
2.)在Java中进行显式的配置
3)在xml文件中进行显式的配置
2. 自动装配的相关注解
-
组件扫描
@Component 表示这个类需要在应用程序中被创建
@ComponentScan 自动发现应用程序中被创建的类 -
自动装配
@Autowired 自动满足Bean之间的依赖 -
定义配置类
@Configuration 表示当前类是一个配置类
3. Spring使用Junit单元测试(注解版)
1)引入Spring单元测试模块
-
maven:junit、spring-test
-
@RunWith(SpringJUnit4ClassRunner.class) //自动初始化spring的上下文环境
2)加载配置类
- @ContextConfiguration(classes= ApplicationConfigTest.class)
//读取配置文件
配置类
4.@Autowired 的使用
1)用在构造函数上:多个依赖的情况(效率最高)
2)用在成员变量上(最便捷)
3)用在setter方法上
4)用在任意方法上
@Autowired(required=false) 表示注入的对象是可选的。required的默认值是true,必须先创建对象才能使用。
5. 处理多个Bean的歧义性
1)首选Bean
在声明类的时候使用@Primary;只能定义一个@Primary。
2)使用限定符
在声明和装配的时候分别使用@Qualifier
3)使用限定符和bean id
在声明的时候指定bean的id(默认的id是类名首字母小写),在装配的时候使用@Qualifier
4)使用@Resource注解
6. 分层架构中对应的注解
web层 —— @Controller
service层 —— @Service
Dao层 —— @Resposity
另,以上三层的组件都可以用@Component代替
7.设置组件扫描的基础包
1)定义扫描包的根路径
2)定义需要扫描的包名数组
3)定义需要扫描的类对象数组
8. 使用xml配置文件进行注解扫描
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
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">
<!--开启注解扫描-->
<context:component-scan base-package="com.zm" />
</beans>
与之搭配的Junit测试类前的注解说明:
JavaConfig中的装配
1. 如何在JavaConfig中配置Bean对象
2. 通过构造函数依赖注入
一种更优雅的@Bean注入方式
3. 通过setter方法依赖注入
4.处理JavaConfig中的歧义性装配问题(与自动装配的方式相同)
方式1:
方式2:
方式3: