在Bean被创建时,如果Bean的属性(property)在Spring配置文件Bean的定义中没有进行初始化赋值,默认情况下Spring是不做检查的。但是很多情况下会要求Bean特定的属性必须进行初始化赋值,这种初始化赋值的检查就叫做依赖检查。在Spring2.x中通过在bean标签中使用dependency-check属性设定由Spring进行强制检查的方式。denpendency-check属性有四个值:none、object、simple、all。
如果不进行设置设就是Spring中dependency-check的默认值none,不进行任何检查。<bean id="bwf" class="com.Boweifeng" dependency-check="none">
只检查简单类型属性以及集合类型属性,则配置为simple。<bean id="bwf" class="com.Boweifeng" dependency-check="simple">
检查除简单类型属性以及集合类型属性外的引用类型属性,属性配置为object。<bean id="bwf" class="com.Boweifeng" dependency-check="object">
检查所有类型属性,denpendency-check的值配置为all。<bean id="bwf" class="com.Boweifeng" dependency-check="all">
而既然Spring3中放弃使用了dependency-check属性,提供一种更加灵活的检查方式:@Required注解检查。但他只检查属性是否已经设置而不会测试属性是否非空,而且@Required注解只能设置在setter方法上。下面我们来看一下如何使用@Required注解。
需要在配置文件中加上这样一句话:<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>。或者加入:<context:annotation-config/>。
做好这样的配置就可以使用@Required注解了:
public void setName(String name) {
this.name = name;
}
这样就配置完成了,这样如果任何带有@Required的属性未设置的话 将会抛出BeanInitializationException异常。