Ale*_*ula 29 spring frameworks properties autowired
尝试在Spring 3.0.5.RELEASE中将属性自动连接到bean ,我正在使用:
config.properties:
username=myusername
Run Code Online (Sandbox Code Playgroud)main-components.xml:
<context:property-placeholder location="classpath:config.properties" />
Run Code Online (Sandbox Code Playgroud)我的课:
@Service
public class MyClass {
@Value("${username}")
private String username;
...
}
Run Code Online (Sandbox Code Playgroud)因此,用户名被设置为字面意思 "${username}",因此表达式不会被解析.我对此类的其他自动连接依赖项进行了设置,Spring不会抛出任何异常.我也尝试添加,@Autowired但它没有帮助.
如果我将属性解析为单独的bean然后使用@Autowired+ @Qualifier,它可以工作:
<bean id="username" class="java.lang.String">
<constructor-arg value="${username}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
任何想法如何使用只是@Value?也许我需要包含一些我没有的Spring依赖项?谢谢
Ale*_*ula 20
找到问题所在.复制/粘贴评论:
您确定您<context:property-placeholder>在与MyClass bean相同的应用程序上下文中(不在父上下文中)吗? - axtavt
你是对的.我<context:property-placeholder>从定义的上下文移动ContextLoaderListener到servlet上下文.现在我的值被解析了.非常感谢! - 亚历克斯
| 归档时间: |
|
| 查看次数: |
36424 次 |
| 最近记录: |