原文:http://blog.csdn.net/chjttony/article/details/6286144
- 自动扫描
为了让Spring能够扫描类路径中的类并识别出注解,需要在XML配置文件中启用Bean的自动扫描功能,这可以通过<context:component-scan />实现。
- @Repository
它用于将DAO层的类标识为Spring Bean,它还将所标注的类抛出的数据访问异常封装为Spring的数据访问异常类型。
- @Componet @Service @Controller
@Componet是一个泛化的概念,仅仅表示一个Bean。
@Service通常作用于业务层。
@Controller通常作用于控制层。
- 命名策略
当一个Bean被自动检测到时,会根据那个扫描器的BeanNameGenerator策略生成它的bean名称,如果不想使用默认bean命名策略,可以提供一个自定义的全名策略。
- 作用域
默认作用域是“singleton”,可以使用@Scope注解秋修改作用域。
- 指定生命周期回调方法
(1)第一种方式:是实现Spring提供的两个接口:InitializingBean和DisposableBean,如果希望在Bean初始化完成之后执行一些自定义操作,则可以让Bean实现InitializingBean接口,该接口包含一个afterPropertiesSet()方法,容器在为该Bean设置了属性之后,将自动调用该方法。如果Bean实现了DisposableBean接口,则容器在销毁该Bean之前,将调用该接口的destroy()方法。
(2)在XML文件中使用<bean>的init-method和destroy-method属性指定初始化之后和销毁之前的回调方法。
<bean id=”userService”
class=”bookstore.service.UserService”
init-method=”init” destroy-method=”destroy”>
…
</bean>
(3)JSR-250
@PostConstruct @PreDestroy
只需要将他们标注于初始化之后执行的回调方法和销毁之前执行的回调方法上。由于使用了注解,因此需要配置相应的Bean后处理器。
<context:annotation-config />
- @Required
Spring进行依赖检查时,只会判断属性是否使用了Setter注入,始果某个属性没有使用Setter注入,即使通过构造函数已经为该属性注入了值,仍认为它没有执行注入,它只能标注到Setter方法上。
- 自动装配策略
根据指定的自动装配规则,将某个Bean所需要引用类型的Bean注入进来。<bean>元素提供了一个自动装配类型的autowire属性,该属性:
(1)no,显示指琮不使用自动装配。
(2)byName,如果存在一个和当前属性名字一致的Bean,则使用该Bean进行注入。
(3)byType,如果存在一个当前属性类型一对我的Bean(或子类型)
(4)construct,和byType类似,只不过它是针对构造函数注入而言。
(5)autodetect,自动决定是byType还是construt。
- @Autowired
只能根据类型进行匹配
(1)作用于简单方法时,会产生一个副作用,就是在容器初始化该Bean实例的时候会调用该方法。
(2)当容器中存在多个Bean的类型与需要注入的相同时,注入将不能执行,可以在@Autowired后面增加一个@Qualifier标注,
- @Resource
根据类型自动装配
注解有一个name属性 ,如果没有指定name属性,那么默认值就是字段或者属性的名字。
- @Configuration @Bean
使用AnnotationConfigApplicationContext替代XML配置方式。
最后欢迎大家访问我的个人网站:1024s