1. Spring @Configuration 和 @Component 区别
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方法的入口在这些的列的上层包就行
2. javabean与普通类有什么区别吗
javabean是对面向对象思想的一种具体实施的表现,本质就是组件化,模块化。把复杂的系统拆成若干个小的模块,就像零件一样,需要时在按照系统架构对他进行拼接,满足于一个功能需求而特别独立出来的java类,具体表现提供若干个公开的构造方法,以及对类中的字段,遵照javabean规范提供相应的set和get方法。
广义上来说,所有的类都可以被称做javabean,因为都是根据一个特定的功能需求而独立出来的java类
3. spring 自动装配 和配置bean的区别
spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系。因此,如果可能的话,可以自 动让Spring通过检查BeanFactory中的内容,来替我们指定bean的协作者(其他被依赖的bean)。由于 autowire可以针对单个bean进行设置
4. JAVA BEAN和CLASS的区别
JavaBean和class的区别:JavaBean只是比class多一些限制条件,其他无区别。
JavaBean实质也是一个类,这个类遵循:
类必须是具体的和公共的。
具有无参数的构造器。
通过提供符合一致性设计模式的公共方法将内部域暴露成员属性(即getters和setters)。
实现java.io.Serializable接口(这个目前是默认实现的,不需要特殊申明)。
例如以下为一个简单的JavaBean:
packagecom.test;
importjava.lang.*;
publicclassJavaBean{
privateStringattr;
publicJavaBean(){
//无参构造函数
}
//setter
publicvoidsetAttr(Stringstr){
attr=str;
}
//getter
publicStringgetAttr(){
returnattr;
}
}