扫码阅读
手机扫码阅读

@AutoConfigurationPackage 和 @ComponentScan 有何区别?

42 2024-11-02

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:@AutoConfigurationPackage 和 @ComponentScan 有何区别?
文章来源:
江南一点雨
扫码关注公众号
文章摘要

松哥宣布TienChin视频项目已完成,这是一个基于Spring Boot和Vue3技术栈的教学视频,旨在帮助小伙伴们完成一个超过90%完成率的项目。此外,还有一个配套视频推出,邀请大家一起学习。

在面试题目的探讨中,松哥提到了两个容易混淆的注解:@AutoConfigurationPackage和@ComponentScan。这两个注解都用于扫描Bean,但他们的用途并不相同。@AutoConfigurationPackage主要用于扫描第三方的Bean,例如MyBatis的@Mapper注解,而@ComponentScan则是扫描Spring相关的Bean,如@Controller、@Service等。

通过一个实例,松哥解释了当Spring Boot项目中的类不在启动类所在的包或子包时,可能会导致Bean扫描不到而出现错误。解决这个问题的办法是在启动类上使用@ComponentScan注解重新配置扫描路径,或者将启动类放到包的根目录下。然而,即使使用了@ComponentScan,MyBatis的@Mapper注解仍然无法被扫描到,这就是@AutoConfigurationPackage发挥作用的地方。

在Spring Boot项目中,默认的启动注解已经包含了@AutoConfigurationPackage,因此无需额外添加。这个注解能够扫描启动类所在包及其子包下的所有第三方Bean。

最后,松哥总结了@AutoConfigurationPackage和@ComponentScan的区别:前者主要用于扫描第三方Bean,后者则是扫描与Spring容器相关的Bean。同时,松哥还宣布了一项新的书籍赠送活动,提供了六本书作为奖励,并邀请小伙伴们留言参与。

想要了解更多内容?

查看原文:@AutoConfigurationPackage 和 @ComponentScan 有何区别?
文章来源:
江南一点雨
扫码关注公众号