@Value注释未在属于依赖jar的类中解析

时间:2015-06-08 22:40:51

标签: java spring web annotations

我有一个简单的Web应用程序,其中包含一些依赖jar,用于某些功能,需要使用主应用程序代码中定义的属性值。

先谢谢你帮我解决这个问题。

dependency.jar包含

public class MyClass {

    @Value("${abc.def}")
    private String abc;  // DOES NOT GET RESOLVED. IS ALWAYS NULL

}

依赖性-context.xml中

my-app.war包含

public class LocalClass {

    @Value("${abc.def}")
    private String abc;  // GETS RESOLVED TO CORRECT PROPERTY VALUE
}

的context.xml     import dependency-context.xml

2 个答案:

答案 0 :(得分:0)

您可能遇到此bug。这使得使用导入上下文将@Value与来自不同项目的多个PropertyPlaceholderConfigurers一起使用变得非常困难。要解决此问题,请尝试将现有PropertyPlaceholderConfigurer自动装配到bean配置方法中(假设您可以使用@Configuration)并使用项目中的值更新方法中的对象。

答案 1 :(得分:0)

@scottmf位于右侧,但您无法直接从PropertyPlaceholderConfigurer读取属性:(

相反,我在战争中创建了一个String @Bean ......

<bean id="myProperty" class="java.lang.String">
    <constructor-arg value="ABC"/>
</bean>

可以@Autowired到jar类中:

@Bean
public Object myBean(String myProperty) { ... }