Java 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、

我是Spring新手,我想知道在Spring中使用@Value注释的先决条件是什么

我现在拥有的是一个令牌类,它以硬编码密钥作为字段。我试图做的是将这个密钥移动到配置文件中,以消除硬编码,但由于某些原因,下面的方法不起作用

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)创建的对象起作用