首先一句话:
@Configuration修饰的类会被Cglib动态代理,@Component不会。
详细:
Cglib动态代理生成当前对象的子类Class,并对方法拦截,多次调用@Bean方法时直接从BeanFactory之中获取,得到同一个对象。
例:
@Configuration // @Component public class Test { @Bean public A a(){ A a = new A(); a.setB(b()); return a; } @Bean public B b(){ B b = new B (); return b; } }
此时在其他类中使用@Autowired获取到的对象和a中的b是同一个。
标签:return,区别,Component,Bean,new,Configuration,public From: https://www.cnblogs.com/maerpao/p/17059115.html