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)