2. Spring Bean 注解描述
Spring 容器中描述 bean 的方式有两种,一种基于 xml 方式,一种基于注解方式,现阶段基于注解方式描述 Bean 元素已成为一种趋势。
Spring 中常用的注解如下:
1. 修饰 Bean 类型(将 bean 交给 spring 容器管理)
a) @Component(描述通用性组件)
b) @Controller(描述 MVC 中控制层组件)
c) @Service(描述 MVC 中业务层组件)
d) @Repository(描述 MVC 中持久层组件)
*说明:这些组件实现的功能是一样的,只是应用的业务场景不同
2. 修饰对象作用域类型(将 bean 交给 spring 容器管理)
a) @scope
b) @PostConstruct(描述生命周期开始要调用的初始的方法)
c) @PreDestroy(描述生命周期结束时要调用的销毁的方法)
3. 自动装配注解(为属性注入值)
a) @Autowired(一般修饰构造方法或 set 方法或属性,默认按类型装配)
b) @Qualifier(配合 Autowire 注解,按名字进行装配,尤其是出现类型相同的 bean 时,可以指定具体 bean)
b) @Resource(一般修饰 set 方法或属性,默认按 set 名字装配)(java的注解)
*说明:无论默认按类型还是按名字进行装配,在没有找到对应名字或类型对象时,底层还可能转换机制。
2.1 Spring 注解应用
在 spring 应用中假如使用注解描述 bean ,定义 bean 的依赖机制,首先需要配置类的扫描机制(扫描某个或多个包中的类),spring 扫描到这个类以后,会检测这个类上是否有 spring 或 java 中定义的相关注解,假如有 spring 底层会通过反射构建此类型的对象,然后进行管理。