我有一个Spring Boot应用程序,在其中一个类中,我尝试使用@Value
从application.properties文件引用一个属性。但是,该属性未解决。我看过类似的帖子,并尝试按照建议进行操作,但这没有帮助。该类是:
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class PrintProperty {
@Value("${file.directory}")
private String fileDirectory;
public void print() {
System.out.println(fileDirectory);
}
}
我在
application.properties
中具有属性file.directory。我还有其他 Realm 。 最佳答案
我和你一样有同样的问题。这是我的错误代码。
@Component
public class GetExprsAndEnvId {
@Value("hello")
private String Mysecret;
public GetExprsAndEnvId() {
System.out.println("construct");
}
public void print(){
System.out.println(this.Mysecret);
}
public String getMysecret() {
return Mysecret;
}
public void setMysecret(String mysecret) {
Mysecret = mysecret;
}
}
这样不是问题,但是
我们需要像这样使用它:
@Autowired
private GetExprsAndEnvId getExprsAndEnvId;
不像这样:
getExprsAndEnvId = new GetExprsAndEnvId();
在这里,用@Value注释的字段为null,因为Spring不知道用new创建的GetExprsAndEnvId的副本,也不知道如何在其中注入(inject)值。