SrpingBoot启动类不添加@ComponentScan也能自动扫描

自己在学习SpringCloud时,遇到了上述疑问。学习视频上没有加@ComponentScan也能自动扫描注解,但公司同事加了@ComponentScan注解,问题:为什么SrpingBoot启动类不添加@ComponentScan也能自动扫描?

参考大佬博客——SpringBoot使用 SpringCloud Fegin 后无法自动扫描接口定义和接口实现

 

把 JAVA 接口定义和接口实现放到主类所在包,或主类所在包的子包。就可以自动扫描到接口定义和接口实现了(而且是不需要在主类中加@ComponentScan(basePackages = {})注解 )。

在 controller 类中要加 @RestController 或 @Controller , service 接口中添加 @Component,service 实现类中添加 @Service 不然是不会把它们当 Bean 初始化的。

注意: Dao 接口加 @Component  或 @Repository 都不会把 dao 当 bean 初始化。只有在应用主类中添加  @MapperScan("com.winterchen.dao") 注解才会初始化dao 作为 bean 初始化,com.winterchen.dao 是 dao 接口所在的包。

你可能感兴趣的:(spring)