Spring提供了一个很好的功能,允许程序员在java源代码中定义注释以设置@Value("systemProp:defaultvalue")
和其他注入依赖项。
但是,在某些情况下,我们可能会忘记在混合的XML和注释弹簧程序中启用<context:annotation-config/>
。
有没有办法,实用工具方法或模式放入java类来强制执行<context:annotation-config/>
是不是被遗忘了?
答案 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声明来完成。