haj*_*aju 12 java spring dependency-injection
我试图将属性文件加载到Spring bean中,然后将该bean注入到类中.
我无法工作的唯一部分似乎是使用@Resource参考.有人可以为我连接最后一块吗?我每次都得到一个空值.似乎不想注入价值.
[编辑] - 我原本以为使用@Resource是最好的方法,但我发现的解决方案更容易.
我在另一篇文章中看到这个解决方案
参考解决方案链接:将 属性值注入Spring - 由DON发布
感谢Don的帖子,但我不知道如何用@Resource完成它.
调试结果:
变量值appProperties始终为null.它没有被注射.
Spring Config.

样品类:
package test;
import java.util.Properties;
import javax.annotation.Resource;
public class foo {
public foo() {}
@Resource private java.util.Properties appProperties;
}
Run Code Online (Sandbox Code Playgroud)
基于以下批准的解决方案中的建议.以下是我所做的更改.
弹簧配置:

Java类:

aba*_*ogh 17
为了使你的解决方案工作,你还需要使foo成为一个Spring托管bean; 因为否则Spring会如何知道它必须处理你班上的任何注释?
..class="foo"component-scan并指定包含您的foo类的基础包.因为我不完全确定这正是你想要的(你不想让一个.properties 文件被Spring解析并且它的键值对可用而不是一个Properties对象?),我建议你另一个解决方案:使用util命名空间
<util:properties id="props" location="classpath:com/foo/bar/props.properties"/>
Run Code Online (Sandbox Code Playgroud)
并引用bean内部的值(也必须是Spring管理的):
@Value("#{props.foo}")
public void setFoo(String foo) {
this.foo = foo;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
刚刚意识到你org.springframework.context.ApplicationContext在课堂上进口可能是不必要的.我强烈建议您至少阅读前几章的Spring参考资料,因为a)这是一个很好的阅读b)如果基础知识清楚,你会发现Spring更容易理解.
| 归档时间: |
|
| 查看次数: |
66689 次 |
| 最近记录: |