这俩干嘛的????
@Component和@Configuration 都可与用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
直接开始总结:
@Configuration注解类下的所有带着@Bean的方法都会被动态代理,因此调用该方法返回的都是同一个实例。
@Component类中的@Bean注解得方法被调用返回的是一个新的实例。
区别@Bean注解得方法被调用返回的新的(旧的)实例。@Configuration 旧的 @Component新的
@Configuration注解得类必须符合以下的要求:
配置类必须以类的形式提供(不能是工厂方法返回的实例),允许通过生成子类在运行时增强(cglib 动态代理)。
配置类不能是final 类(没法动态代理)。
配置注解通常为了通过 @Bean注解生成 Spring 容器管理的类,
配置类必须是非本地的(即不能在方法中声明,不能是 private)。
任何嵌套配置类都必须声明为static。