前提:spring对于Bean的理解
- 根据Spring中的两大核心 AOP和IOC此处学习到了对于Bean的自动装配
- 对于Bean的使用摆脱了xml的配置繁杂直接使用注解注入到spring的容器中进行统一管理
<bean id = “mybean” class = “blog.spring.MyBean”>
<property name = “name”>
<value>springTest</value>
</property>
</bean>
@Componet
class MyBean{
String springName;
}
Spring中如何分类注解进行Bean的管理的
但是仔细一想,发现@Bean 和 @Component却傻傻分不清楚了。
题外话,原来一直只以为java的bean就是一大堆get 和 set 方法,不知道什么时候的bean变成了现在的这个样子。
搜索了一下,中文的都没有讲解的特别好的文章来说明两者的区别,但是找到一个英文的文章比较好。
Spring series, part 5: @Component vs @Bean
简单的翻译一下
两大类的Bean
- 对于Bean的理解:java对于面对对象而言,有属性和方法。如果需要调度的话需要实例化使用,那么对于Bean而言就是帮助了实例化的步骤。
- 规律:凡是子类及带有方法和属性的类都要加上注解Bean注入到spirng的IOC中
- 可以把Bean理解为类的代理(实际上是通过反射、反射来实现的),通过Bean的名称就可以代理这个Bean的所有属性和方法l了
注解分类
- 一类是使用Bean,即已经在xml文件中配置好的Bean拿来用,完成属性和方法的组装;比如@Autowired,@Resource可以通过ByType(@Autowired),ByName(@Resource)方式获取bean。(举例:mapper.xml和mapper接口的注入)
- 一类是使用Bean,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IOC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。