问题描述
1.一个User类,有一个有参构造,没有@Component注解
3.一个Start类,自动按类型注入一个User对象userBean,一个UserConfiguration 对象userConfiguration ,并且不断打印userBean信息,不断调用userBean()方法
这里用的@Autowired按类型注入,其实就算@Resource(name = “userBean”)或者@Autowired@Qualifier(“userBean”)按名字注入也不影响结果。
4.测试结果①:UserConfiguration类上只用@Component,
首先在UserConfiguration类中会执行userBean()方法,new一个user并且作为userBean注入spring容器,并且Start中自动注入的User就是这个userBean一直没有变化。Start中不断调用调用@Bean注解userBean()方法,会new出新User对象,但是并不会覆盖一开始注入spring容器中的那个对象即Start中通过@Autowired注入的userBean不会变化。(spring同一个类会可能有多个对象注入,但是@Bean应该是按名称注入容器)
5.测试结果二:UserConfiguration类上只用@Configuration或者同时用@Component和@Configuration,
首先在UserConfiguration类中会执行userBean()方法,new一个user并且作为userBean注入spring容器,并且Start中自动注入的User就是这个userBean一直没有变化,但是Start中不断调用userBean()方法并不会执行,很奇怪,为什么呢?
Spring @Configuration 和 @Component 区别(精简汇总版)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)