Spring容器中描述bean的方式有两种,一种是基于xml方式,一种是基于注解方式.,现阶段基于注解方式描述Bean元素已经成为一种趋势.Spring中常用的bean注解有如下几种:
1) 修饰Bean对象的注解。(xml中描述bean使用<bean>)
a) @Configuration(描述Bean为一个配置对象)
b) @Component(描述Bean为一个一般组件组件)
c) @Controller(描述Bean为一个控制层对象)
d) @Service (描述Bean为一个业务层对象)
e) @Respository(描述Bean为一个持久层对象)
f) @Scope(描述bean的作用域)
g) @Lazy(定义bean对象是否延迟加载)
h) ….
对于spring来讲看到a)看到b)看到c)看到d)都是Bean,不全部用一个@Component注解表示,
是为了提高程序的可读性。但是对spring来说使用这几个注解的底层实现都是一样的。
- 指定Bean生命周期方法 (xml中使用<bean init-method=””>)
a) @ PostConstruct(描述生命周期开始要调用的初始化的方法)
b) @ PreDestroy (描述生命周期结束时要调用的销毁的方法)
说明:描述生命周期方法的注解应用时应在JDK1.7以上版本
- 自动装配注解(为属性注入值):类似xml阶段中bean标签的autowire属性
a) @Autowire (一般修饰构造方法或set方法或属性,默认按类型装配)
b) @Qualifier (配合Autowire注解,按名字进行装配,尤其是出类型相同的bean时,可以指定具体bean)
c) @Resource (一般修饰set方法或属性,默认按名字装配)