Spring3.x中的依赖检查

时间:2012-10-18 11:52:16

标签: java spring spring-mvc dependency-injection

Spring2.5有一个名为dependency-check的功能,可以为bean标签和default-dependency-check提供,可以在父级<beans>标签上给出。

例如:<bean id="soandSo" class="..." dependecy-check=""/>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" 
    default-dependency-check="all">

但是在Spring3.x中这些属性已被弃用,除了在Spring3.x中使用@Required属性和任何等价的default-dependency-check之外,是否还有其他设置依赖项检查的方法?

2 个答案:

答案 0 :(得分:1)

此功能自Spring 3.x 以来不支持。通过告诉Spring尊重@Required@Autowired注释,您可以获得类似的结果。可以使用XML上下文文件中的以下任何配置选项来完成:

  1. <context:annotation-config/>
  2. <context:component-scan base-package="*"/>
  3. 您可以通过注册BeanPostProcessorsAutowiredAnnotationBeanPostProcessor等适当的RequiredAnnotationBeanPostProcessor来跳过这些选项。

答案 1 :(得分:0)

我认为不是,因为在Spring 2.5中完全接受了注释,并且随着框架通过这些类型的更改而演变,很明显注释将继续成为保持框架尽可能清晰和直接的强大驱动力。

Spring团队现在鼓励开发人员使用以下替代方案(使用Spring 3及更高版本)。

  • 使用构造函数(构造函数注入而不是setter注入) 专门用于确保设置正确的属性。创建setter 使用专用的init方法实现。
  • 当需要该属性时,使用@Required注释创建setter。
  • 使用@Autowired - 驱动注射,这也意味着所需的属性 默认值。