什么样的类可以被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

相关推荐

看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗? 那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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