[英]Annotations declared in Abstract Class not being loaded
我有一个使用Spring / Maven / Weblogic在Eclipse(Juno)中创建的动态Web项目。 我也有一个Abstract类,通过属性文件将属性(在setter上)注入其中。 使用的注释为@Value(value =“ $ {some.property}”)。
出于某些奇怪的原因,当我通过maven将该项目部署到weblogic时,将为扩展该Abstract类的具体类注入该属性。 但是,当我通过服务器->添加部署将该项目直接部署到weblogic时,它无法注入该属性。 实际上,它确实为具体类上的所有其他注释注入了属性,但忽略了抽象类的任何注释。 因此,基本上,这与编码无关,但看起来像某种配置问题。 有没有人遇到过类似的事情。 谢谢。
public abstract class MyAbstract {
@Value(value="${myproperty1}")
public void setMyValue(String myValue) {
log.debug("setMyValue({})", myValue);
this.myValue = myValue;
}
}
public class MyConcrete {
@Value(value="${myproperty2}")
public void setMyValue2(String myValue2) {
log.debug("setMyValue2({})", myValue2);
this.myValue2 = myValue2;
}
}
我发现了问题。 关键是这个特定的bean具有@Scheduled注释,因此不符合Bean Post Processing的条件。 由于通过@Value设置的属性是在此阶段设置的,因此将跳过它们。 相反,我将Bean创建转移到了我的应用程序上下文xml文件中,并从那里设置了属性。
<bean id="myConcrete" class="some.package.MyConcrete"
p:value="${myproperty1}"
/>
现在,将在常规bean生命周期内(即,在实例化之后但在Bean Post Processor之前)注入属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.