如何解决Spring 3.0.5不评估属性中的@Value注释
找到了问题所在。复制/粘贴评论:
你确定<context:property-placeholder>
与MyClass bean在同一个应用程序上下文中(not in the parent context)吗?– axtavt
你是对的。我<context:property-placeholder>
从定义的上下文转移ContextLoaderListener到servlet上下文。现在,我的值被解析了。非常感谢
解决方法
尝试在Spring 3.0.5.RELEASE中自动将属性连接到Bean ,我正在使用:
- config.properties:
username=myusername
- main-components.xml:
<context:property-placeholder location="classpath:config.properties" />
- MyClass:
@Service
public class MyClass {
@Value("${username}")
private String username;
...
}
结果,username被设置为字面值 "${username}"
,因此表达式不会被解析。我对该类的其他自动关联依赖关系已设置,并且Spring不会引发任何异常。我也尝试添加,@Autowired
但没有帮助。
如果我将属性解析为单独的bean,然后使用@Autowired+ @Qualifier
,那么它将起作用:
<bean id="username" class="java.lang.String">
<constructor-arg value="${username}"/>
</bean>
任何想法如何使用只是@Value
?也许我需要包括一些我没有的Spring依赖项?谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。