如何确保<context:annotation-config>在类中设置,具体取决于它?</context:annotation-config>

时间:2011-07-13 09:46:28

标签: spring annotations

Spring提供了一个很好的功能,允许程序员在java源代码中定义注释以设置@Value("systemProp:defaultvalue")和其他注入依赖项。

但是,在某些情况下,我们可能会忘记在混合的XML和注释弹簧程序中启用<context:annotation-config/>

有没有办法,实用工具方法或模式放入java类来强制执行<context:annotation-config/>是不是被遗忘了?

1 个答案:

答案 0 :(得分:3)

如果未正确配置<context:anotation-config/>,则编写一个失败的测试用例。


如果您确实要检查是否在生产中,请定义默认值并注入此默认值。 然后你需要在构造函数中检查它。例如。 <击>     公共类演示(){

  @Value("default");
  private String check;

  public Demo() {
     assert "default".equals(check) : "It seams that anntation-config is not enabled";
  }
}

<击> 不起作用,因为在调用构造函数后注入了值。

如果支持@Autowired,您可以使用单独的方法完成所有操作:

public class Demo2 {   

    @Autowired
    public void checkAnnotationConfigEnabled(
                          @Value("default") String check) {
        assert "default".equals(check);
    }
}

如果你的问题不是你需要为每个类启用anntation-config那么就有了一个bean来实现这个检查逻辑。如果没有,并且不想将这些行放在每个类中,那么可以使用AspectJ intertype声明来完成。