Java Spring@Value注释
我是Spring新手,我想知道在Spring中使用@Value注释的先决条件是什么 我现在拥有的是一个令牌类,它以硬编码密钥作为字段。我试图做的是将这个密钥移动到配置文件中,以消除硬编码,但由于某些原因,下面的方法不起作用Java Spring@Value注释,java,spring,spring-mvc,Java,Spring,Spring Mvc,我是Spring新手,我想知道在Spring中使用@Value注释的先决条件是什么 我现在拥有的是一个令牌类,它以硬编码密钥作为字段。我试图做的是将这个密钥移动到配置文件中,以消除硬编码,但由于某些原因,下面的方法不起作用 public class Token { //...some code @Value("${my.secretKey}") private String key; //...some code } 也许有任何标准技术可以解决这类任务。 谢谢你的帮助 p、
public class Token {
//...some code
@Value("${my.secretKey}")
private String key;
//...some code
}
也许有任何标准技术可以解决这类任务。谢谢你的帮助
p、 我有
.properties
文件,其中包含my.secretKey=123
条目。要使用@Value
注释,您的Spring版本必须是3.0+
您必须在XML或注释中注册静态PropertySourcesPlaceholderConfigurer
bean,以便Spring@Value
知道如何解释${}
更多信息
注入依赖项和值仅适用于Spring管理的对象-当您使用
new
手动创建对象时,例如通过执行new Token()
,则Spring无法处理该对象以注入依赖项和值
Token
对象必须是Springbean才能工作。一个错误也可能出现在.properties
文件的正确位置。您的.properties
文件位置非常重要。您的xyz.properties
文件必须放在项目的src
文件夹中,如:src/xyz.properties
之后,在XML配置文件中加载属性文件: 文件:
applicationContext.xml
添加以下行:
<context:property-placeholder location="classpath:xyz.properties"/>
此代码应该出现在xml配置文件的
行之后。
现在将属性值注入您的
令牌
类,它现在应该可以工作了。快乐编码。可能与:@Reimeus有关,您能澄清它需要提供什么信息吗?坦率地说,这几乎是一个包含两个类的新项目。
Token
类的实例是Springbean吗?如果您自己使用newtoken()
创建了一个新实例,那么Spring注入就不起作用;Spring无法设置键
变量的值。如果您自己使用新建
创建对象,则Spring没有机会执行依赖项注入和注入值之类的操作。这些东西只对通过Spring(SpringBeans)创建的对象起作用