一
.
如何开启基于注解的自动装配?
1 ) . 简述 : 若使用@Autowired,需要注册AutowiredAnnotationBeanPostProcessor,以下两种方式实现 :
1.1 引入配置文件汇总的<bean>下引入<context:annotation-config>扫描指定包
<beans>
<context:annotation-config/>
</beans>
1.2 在bean配置文件中直接引入AutowiredAnnotationBeanPostProcessor
<beans>
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor">
<beans/>
二.
请举例解释@Required annotation?
1 ) . 简述 : 在产品级的应用中,IOC容器也许声明了数十万的bean,bean与bean之间有着复杂的依赖关系,
1.1 问题 : 因此设值注解方法的短板之一就是验证所有的属性是否被注解是一项十分 困难的操作
1.2 解决 :通过在<bean>中设置"dependency-check"来解决此问题
2 ) . 简述 :在应用程序的生命周期中,你也许不大愿意花时间在验证所有bean的属性是否按照上下文文件正确配置,或者说你宁可验证某个bean的特定属性是否被正确设置
1.1 问题 : 因此 对于单个 bean的特定属性是否被正确设置 成为 如何验证的问题
1.2 解决 : 通过在dependency-check不是太好解决,因此此情况下,使用@Required注解解决
3 ) . 以下是标明bean的设值方法
public class EmployeeFactoryBean extedns AbstractFactoryBean<Object>{
private String designation;
public String getDesignation(){
return designation;
}
@requiredpublic void setDesignation(String designation){
this.designation=designation;
}
}
3.1 简述 : RequiredAnnotation BeanPostProcessor是Spring中后置处理用来验证被@required注解的bean属性是否被正确的设置了
前提 : 在使用RequiredAnnotationBeanPostProcesso来验证bena属性之前,首先要在IOC容器中对其进行注册 :
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor">
注意: 但是若没有属性被用@Required注解过的话,后置处理器会抛出一个BeanInitializationException异常