按照常理,我们的maven项目里面引入一个外部依赖,
如果该依赖的其中一个bean上面有@Component注解也就是说,项目启动过时该bean已经注入到了spring容器中,
那我们的在开发时,是可以对该bean使用@Autowried进行依赖注入,但是注入之后启动却报错,
这是为什么?
研究发现,因为我引入的依赖是一个starter,springboot的starter有自己的一套标准,一套协议,每个starter里面规定了哪些bean是可以注入的,我们程序在引入该starter的时候,
他其实已经被规定好了,我们不需要单独去注入他的某个bean,如果非要注入,那得检查该bean是否在该starter的spring.factories文件中是否配置,
也就是说 ,starter是在spring.factories文件中规定了哪些bean是自动注入的,他只需对外提供注解,或者application.properties文件中的自动提示(key-value形式的配置)。这样就是简化我们使用成本,
要不为啥人家要叫做自动化装配呢。