gpt4 book ai didi

spring - 如何确保 is set in classes depending on it?

转载 作者:行者123 更新时间:2023-12-04 06:20:16 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

如果你真的想检查是否在生产中,那么定义一个默认值并注入(inject)这个默认值。
然后,例如,您需要在构造函数中对其进行检查。

公共(public)类演示(){

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

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

不起作用,因为在调用构造函数之后注入(inject)了值。

如果支持@Autowired,您可以通过单独的方法获得所有内容:
public class Demo2 {   

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

如果您的问题不是您需要启用 anntation-config对于每个类,拥有一个实现此检查逻辑的 bean 就足够了。如果没有,并且不想在每个类中都添加这些行,那么您可以使用 AspectJ 类型间声明来实现。

关于spring - 如何确保 <context :annotation-config/> is set in classes depending on it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com