我使用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;
}
}
答案 0 :(得分:0)
我发现了这个问题。问题是这个特殊的bean有@Scheduled注释,因此不符合Bean Post Processing的条件。由于在此阶段设置了@Value属性,因此会跳过它们。相反,我将bean创建转移到我的应用程序上下文xml文件中,并从那里设置属性,例如。
<bean id="myConcrete" class="some.package.MyConcrete"
p:value="${myproperty1}"
/>
现在,属性在正常的bean生命周期中被注入,即在Instantiation之后但在Bean Post Processor之前。