Spring Boot @Value 属性

新手上路,请多包涵

我有一个 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 。我还有其他领域。

原文由 user6641655 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 699
1 个回答

我和你有同样的问题。这是我的错误代码。

 @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 的副本,也不知道如何在其中注入值。

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题