问题:SpringBoot 使用 SpringCloud Fegin 后无法通过在主类添加 @ComponentScan(basePackages = {}) 注解进行自动扫描与主类 所在包同级的包中JAVA 接口定义和接口实现。
@ComponentScan 注解使用如下:
@ComponentScan(basePackages = {"com.sande.service","com.sande.serviceImpl","com.controller",
"com.example.server1"})
处理办法:把 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 接口所在的包。