1.@Configuration 和 @Component 区别
我们可以看下,其实@Configuration 本质其实是 @Component注解的,因此 <context:component-scan>和@ComponentScan都能处理@Configuration 类

被@Configuration 标记的类必须符合下面几点要求
1.配置类必须是要以类的形式提供,不能是工厂返回的实例,允许生成子类在运行是增强cglib动态代理
2配置类不能是fanl 修饰,不能是匿名类( 任何嵌套的类必须是非本地, 既不能在方法中声明,不能是privater),嵌套的configruation必须是静态类
3.@Bean 方法可能不会返过来创建进一步的配置类 意思就是返回的bean 带有@Configuration.也只是当作普通类来处理。
原理分析待续····························
2.@Configuration 和 @bean
这里@Configuration可以看作是用spring的时候xml里面的<beans>标签
@Bean可以理解为用spring 的时候里面<bean>标签
这两个注解是spring 里面的,并不是spring boot里面的
在spring xml 这种形式的项目的时候 后面都要加上<context:component-scan base-package="com.xxx.xxx"> ,有时候好多注解不起作用, 可能就是这个注解。而在spring boot里面就不一样了, 只要保证main方法的入口在这些的列的上层包就行
网友评论