尝试在Spring 3.0.5.RELEASE中自动将属性连接到Bean ,我正在使用:
username=myusername
<context:property-placeholder location="classpath:config.properties" />
@Service public class MyClass { @Value("${username}") private String username; ... }
结果,username被设置为字面值 "${username}",因此表达式不会被解析。我对该类的其他自动关联依赖关系已设置,并且Spring不会引发任何异常。我也尝试添加,@Autowired但没有帮助。
"${username}"
@Autowired
如果我将属性解析为单独的bean,然后使用@Autowired+ @Qualifier,那么它将起作用:
@Autowired+ @Qualifier
<bean id="username" class="java.lang.String"> <constructor-arg value="${username}"/> </bean>
任何想法如何使用只是@Value?也许我需要包括一些我没有的Spring依赖项?谢谢
@Value
找到了问题所在。复制/粘贴评论:
你确定<context:property-placeholder>与MyClass bean在同一个应用程序上下文中(not in the parent context)吗?– axtavt
<context:property-placeholder>
你是对的。我<context:property-placeholder>从定义的上下文转移ContextLoaderListener到servlet上下文。现在,我的值被解析了。非常感谢