什么样的类可以被AutoWired

我知道有配置类所在包及子包下有@Component @Repository @Service @Controller的可以被扫描到,第三方的包可以通过写配置类@Bean的方式被扫描到,那为什么有的类大家是直接@AutoWired,比如我看项目中用到的JavaMailSender就是直接依赖注入的。他为什么已经被Spring容器管理了呀

@AutoWired
private JavaMailSender javaMailSender
全部评论
我说的不一定准啊,只是自己读源码理解的,spring boot会扫描@Configuration注解,在对这个注解进行处理的同时,还会处理@ComponentScan,你可以看看这个注解的处理流程(好想在ConfigurationClassParser),这个会扫描所有的@Component (因为@service 、@Repository、@Control 都是基于@Component ),所以会把这些全部放到BeanDefinitionRegistry中,同时处理@Configuration 时,还会处理ImportSelector,AutoConfigurationImportSelector类就是这个类,并且还是DeferredImportSelector,这个会延迟处理,处理的时候就是把selectImports选出来的类(标注在spring.factories中)重新走前面提到的流程(也是按照@Configuration 处理的),这样递归的处理流程下来,所有你引入包里面在spring.factories中的配置类全部导入了,并且上面@Bean,@ImportSelector,@ComponentScan,@Compnent,@ImportResource,@ImportProperty等等都处理了
2 回复 分享
发布于 2020-02-08 21:29

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
面试尴尬现场
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务