我有 application.properties,它位于资源中
应用程序属性
hsm.provider=software
hsm.name=TestHsm
hsm.port=3001
hsm.ip=127.0.0.1
hsm.timeout=10000
和 控制器
@RestController
@RequestMapping("/hsm")
public class Controller {
@Value("${hsm.ip}")
private String ip;
@Value("${hsm.port}")
private String port;
@Value("${hsm.name}")
private String name;
@Value("${hsm.timeout}")
private String timeout;
@Value("${hsm.provider}")
private String provider;}
}
然而,当我运行应用程序时,所有变量都保持为 NULL。我错过了什么?
编辑 这是 src 文件夹的项目结构
src
├───main
│ ├───java
│ │ └───com
│ │ └───xyz
│ │ └───hsmservice
│ │ └───hsm
│ │ └───api
│ │ Application.java
│ │ Controller.java
│ │ HSM.java
│ │
│ └───resources
│ │ application.properties
│ │
│ └───META-INF
│ plugin.xml
│
└───test
├───java
│ LibraryTest.java
│
└───resources
编辑 2 这是应用程序类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
原文由 NicO 发布,翻译遵循 CC BY-SA 4.0 许可协议
好的,我用 这个 问题的最佳答案解决了它。我将变量和@Values 放在构造函数的签名中,而不是作为类变量。