Spring @Required 注解
在生产规模的应用程序中,IoC容器中可能会有数百或数千个bean,并且它们之间的依赖关系通常非常复杂。setter注入的一个缺点是你很难检查是否已经设置了所有必需的属性。使用“ dependency-check”属性<bean>可以检查属性值是否已设置,但无法检查其值是否设置为null或non-null值。除了使用验证依赖项之外dependency-check,您还可以
在生产规模的应用程序中,IoC容器中可能会有数百或数千个bean,并且它们之间的依赖关系通常非常复杂。setter注入的一个缺点是你很难检查是否已经设置了所有必需的属性。使用“ dependency-check
”属性<bean>
可以检查属性值是否已设置,但无法检查其值是否设置为null
或non-null
值。
除了使用验证依赖项之外dependency-check
,您还可以使用@Required
注释来检查是否设置了值non-null
。
如何使用@Required注释
1)在setter方法上使用@Required注释
@Required
在类文件中使用bean属性的setter方法的注释如下:
|
2)注册RequiredNennotationBeanPostProcessor类
RequiredAnnotationBeanPostProcessor
是一个spring bean post处理器,它检查是否@Required
已设置带有注释的所有bean属性。要启用此Bean post处理器以进行属性检查,必须在Spring IoC容器中注册它。
|
演示
如果@Required
尚未设置任何属性,则BeanInitializationException
此bean后处理器将抛出a 。例如,如果我将创建一个EmployeeFactoryBean
类的实例而不传递属性值进行指定,那么我将得到此错误。
|
它会抛出错误。
|
要解决此问题,请通过取消注释applicationContext.xml
文件中的行来传递指定值。
通过这种方式,您可以使用@Required
注释和RequiredAnnotationBeanPostProcessor
类来验证在上下文初始化时,已正确设置了所有必需的bean属性。
更多推荐
所有评论(0)