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)
    //读取配置文件
    在这里插入图片描述
    配置类
    在这里插入图片描述

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:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值