Spring自动装配与JavaConfig装配

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)
    //读取配置文件
    Spring自动装配与JavaConfig装配_第1张图片
    配置类
    Spring自动装配与JavaConfig装配_第2张图片

4.@Autowired 的使用

1)用在构造函数上:多个依赖的情况(效率最高)
Spring自动装配与JavaConfig装配_第3张图片
2)用在成员变量上(最便捷)
Spring自动装配与JavaConfig装配_第4张图片
3)用在setter方法上
Spring自动装配与JavaConfig装配_第5张图片
4)用在任意方法上
Spring自动装配与JavaConfig装配_第6张图片
@Autowired(required=false) 表示注入的对象是可选的。required的默认值是true,必须先创建对象才能使用。

5. 处理多个Bean的歧义性

1)首选Bean
在声明类的时候使用@Primary;只能定义一个@Primary。

在这里插入图片描述
2)使用限定符
在声明和装配的时候分别使用@Qualifier

在这里插入图片描述
3)使用限定符和bean id
在声明的时候指定bean的id(默认的id是类名首字母小写),在装配的时候使用@Qualifier

Spring自动装配与JavaConfig装配_第7张图片
4)使用@Resource注解
在这里插入图片描述

6. 分层架构中对应的注解

web层 —— @Controller
service层 —— @Service
Dao层 —— @Resposity

另,以上三层的组件都可以用@Component代替

7.设置组件扫描的基础包

1)定义扫描包的根路径
在这里插入图片描述
2)定义需要扫描的包名数组
在这里插入图片描述
3)定义需要扫描的类对象数组
在这里插入图片描述

8. 使用xml配置文件进行注解扫描


<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对象

Spring自动装配与JavaConfig装配_第8张图片
Spring自动装配与JavaConfig装配_第9张图片

2. 通过构造函数依赖注入

Spring自动装配与JavaConfig装配_第10张图片
Spring自动装配与JavaConfig装配_第11张图片

一种更优雅的@Bean注入方式
Spring自动装配与JavaConfig装配_第12张图片

3. 通过setter方法依赖注入

Spring自动装配与JavaConfig装配_第13张图片
Spring自动装配与JavaConfig装配_第14张图片

4.处理JavaConfig中的歧义性装配问题(与自动装配的方式相同)

Spring自动装配与JavaConfig装配_第15张图片
方式1:
Spring自动装配与JavaConfig装配_第16张图片
方式2:
Spring自动装配与JavaConfig装配_第17张图片
在这里插入图片描述
方式3:
Spring自动装配与JavaConfig装配_第18张图片
在这里插入图片描述

你可能感兴趣的:(javaEE)