IOC 基于注解的自动装配(@Autowired注解)
自动装配就是让应用程序上下文为你找出依赖项的过程。
说的通俗一点,就是Spring会在上下文中自动查找,并自动给bean装配与其关联的属性!
Spring自动装配解决了Spring时代项目配置繁琐的问题,简化配置。
(自动装配是使用spring满足bean依赖的一种方法,spring会在应用上下文中为某个bean寻找其依赖的bean。)
① 前提
参与自动装配的组件(需要装配别人、被别人装配)全部都必须在IOC容器中。
② @Autowired注解
在成员变量上直接标记@Autowired注解即可,不需要提供setXxx()方法。
以后在项目中的正式用法就是这样。
[①] 给Controller装配Service
[②] 给Service装配Dao
[③] Dao层
[④] XML
<!-- 扫描组件 -->
<!-- 通过包来扫描的,包下面所有类进行扫描 -->
<context:component-scan base-package="com.atguigu.spring"></context:component-scan>
[⑤测试类]
/** @Autowired:实现自动装配功能的注解
* 1. @Autowired注解能够标识的位置
* ①标识在成员变量上,此时不需要设置成员变量的set方法
* ②标识在set方法上
* ③为当前成员变量赋值的有参构造上
*/
基于注解的自动装配@Autowired原理

-
首先根据所需要的组件类型到 IOC 容器中查找
-
能够找到唯一的 bean:直接执行装配
-
如果完全找不到匹配这个类型的 bean:装配失败
-
和所需类型匹配的 bean 不止一个
-
没有 @Qualifier 注解:根据 @Autowired 标记位置成员变量的变量名作为 bean 的 id 进行匹配
-
能够找到:执行装配
-
找不到:装配失败
-
-
使用 @Qualifier 注解:根据 @Qualifier 注解中指定的名称作为 bean 的id进行匹配
-
能够找到:执行装配
-
找不到:装配失败
-
-
-
* 2.
所以:如何使用ioc,三层架构上加上相对于的注解,如何把当前需要进行赋值的属性自动装配
浙公网安备 33010602011771号