关于@Autowired+@Component无法注入容器问题
平时的话只要所需的类上面+上@Component或者@Service之类的注解,就会自动声明这个类是bean,然后使用的时候只要+上@Autowired自动注入即可。
问题:
最近发现最近其他模块的类不能注入,具体像这样
然后启动类跑起来就会报错
开始以为spring傻,怎么扫描不到,于是启动类一个个模块去加扫描
@ComponentScans
后来发现只能解决一部分bean的注入问题,而且启动类非常难看
解决:
解决了,问题是包名不统一,本来@SpringBootApplication会自动扫描启动类自己包下所有的bean,根本不需要自己一个个模块扫描,后来发现就是我其他模块的包名和启动类的包名不一致,导致没有扫描到,确保其他模块的包名在启动类模块包名的下就解决了