如何确保>是根据它在班级中设置的吗?
Spring 提供了一个很好的功能,允许程序员在 java 源代码中定义注释来设置 @Value("systemProp:defaultvalue") 和其他注入的依赖项。
然而,在某些情况下,我们可能会忘记在混合 XML 和注释 spring 程序中启用
。
有没有办法、实用方法或模式放入 java 类中以强制
不被遗忘?
Spring provide a nice feature that allow programmer to define annotations in java source code to setup @Value("systemProp:defaultvalue")
and other injected dependency.
However, in some case we may forget to enable the <context:annotation-config/>
in a mixed XML and annotation spring program.
Is there a way, an utility method or a pattern to put in the java class to enforce the <context:annotation-config/>
is not being forgotten?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编写一个测试用例,如果
配置不正确,该测试用例就会失败。如果您确实想检查是否在生产中,则定义一个默认值并注入该默认值。
那么你需要在构造函数中检查它,例如。<罢工>
公共类演示(){
不起作用,因为值是在调用构造函数后注入的。
如果支持@Autowired,您可以将其全部放在单独的方法中:
如果您的问题不是您需要启用
如果为每个类添加 anntation-config
,那么拥有一个实现此检查逻辑的 bean 就足够了。如果没有,并且不想将此行放在每个类中,那么您可以使用 AspectJ 类型间声明来完成。Write a test case that fails if
<context:anotation-config/>
is not configured right.If you really want to check if in production, then define a default value and inject this default value.
Then you need to check it in the constructor for example.public class Demo() {
Does not work because the Value is injected after the constructor is invoked.
If @Autowired is supported the you can have it all in an seperate method:
If your problem is not that you need to enable
anntation-config
for each class then it would be enougth to have one bean that implements this check logic. If not, and do not want to put this lines in every class, then you can do it with AspectJ intertype declartions.