自动装配_笔记

自动装配;
       Spring利用以来注入,完成对IOC容器中各个组件的依赖关系赋值
   1、@Autowired:自动注入 ,这是Spring的组件
        1.1 默认优先按照类型去容器中找对应的组件,如果找到,就给它赋值
        1.2 如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找
        1.3 使用@Qualifier("bookDao")明确指定要装配组件的id,而不是使用属性名
        1.4 如果容器中没有相对应的组件,会报错。所以,默认一定要将属性赋值好
        1.5 可以使用@Autowired(required=false)表示非必须组件
        1.6 @Primary: 让spring进行自动装配的时候,默认使用首选的bean。也可以继续使用@Qualifier指定需要装配bean的名字
       以BookerService为例,这里需要BookerDao这个组件
       BookerService{
         @Autowired
         BookerDao   bookerDao;
       }
   2、Spring还支持使用@Resource(JSR250规范)和@Inject(JSR330规范)   这两个都是Java规范的注解  
        @Resource可以和@Autowired一样实现自动装配功能,默认是按照组件的名称进行装配的,没有能支持@Primary的功能和@Autowired(required=false)的功能
      

      @Inject:使用该注解还要导入pom.xml文件Javax.inject的依赖.功能和@Autowired一样,不过没有@Autowired(required=false)的功能
      

   3、@Autowired:可以标注构造器,参数,方法,属性;
       3.1 标注在方法上时,Spring容器创建当前对象,就会调用方法,完成赋值,方法使用的参数,自定义类型的值从IOC容器中获取.(例如:@Bean+方法参数,这些位置默认不写@Autowired)   
       3.2 标注在构造器上时,要用到组件,都是从容器中获取。如果当前类只有一个有参构造器,这个有参构造器的@Autowired可以省略,参数位置的组件还是可以自动从容器中获取
       3.3 放在参数上

 4、自定义组件想要使用Spring容器底层的一些组件(如:applicationContext, beanFactory,xxx等等)
       自定义组件只需实现xxxAware接口;在创建对象的时候,会调用接口规定的方法注入相关的组件。把Spring底层一些组件注入到自定义的Bean中
       xxxAware的功能都是使用xxxProcessor来处理的。


 Spring中AutowiredAnnotationBeanPostProcessor:解析完成自动装配的功能

一般来说,默认加在IOC容器中的组件,容器启动会调用无参构造器创建对象,再进行初始化赋值等操作

 

根据提供的引用内容,可以得出以下结论: Spring Boot的自动装配原理可以通过查看spring.factories文件来了解。该文件位于spring-boot-autoconfigure-2.5.4.jar包的META-INF目录下。在启动过程中,Spring Boot会根据spring.factories文件中配置的自动配置类的全类名来加载对应的配置类。如果配置类中的@ConditionalOnxxx注解满足条件,则会加载该配置类。\[1\] 如果想深入了解自动装配的原理,可以在源码中进行跟踪和研究。了解自动装配后,可以更好地理解yaml配置的过程,并在源码中找到可以配置的属性。\[3\] 在学习Spring Boot之前,建议先具备Spring和Spring MVC的基础知识。Spring Boot的目的是简化新Spring应用的搭建和开发过程,它使用特定的配置方式,使开发人员不再需要定义样板化的配置。\[4\] 对于集成特定模块,比如Freemarker,Spring Boot提供了自动集成的功能。只需要导入相应的starter包,就会自动实现注入。例如,集成Freemarker可以通过导入FreeMarkerAutoConfiguration来实现。\[5\] 综上所述,Spring Boot的自动装配原理可以通过查看spring.factories文件来了解,同时可以在源码中进行深入研究。在学习之前,建议具备Spring和Spring MVC的基础知识。对于特定模块的集成,Spring Boot提供了自动集成的功能。 #### 引用[.reference_title] - *1* [springboot自动装配原理笔记一](https://blog.csdn.net/JieZhongBa/article/details/120378592)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *4* *5* [导图梳理springboot手动、自动装配,让springboot不再难懂](https://blog.csdn.net/b644ROfP20z37485O35M/article/details/102029574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SpringBoot思维导图(知识点总结)](https://blog.csdn.net/weixin_38378034/article/details/115432455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值