Nic*_*icO 10 java rest spring spring-boot
我有 application.properties,它位于资源中
应用程序属性
hsm.provider=software
hsm.name=TestHsm
hsm.port=3001
hsm.ip=127.0.0.1
hsm.timeout=10000
Run Code Online (Sandbox Code Playgroud)
和控制器
@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;}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序时,所有变量都保持为 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
Run Code Online (Sandbox Code Playgroud)
编辑 2 这是应用程序类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 12
@Value 有时返回 null 的原因是当您尝试将“application.properties”内容用于静态变量时,这在 Spring 中是不允许的。按照以下步骤操作: https: //mkyong.com/spring/spring-inject-a-value-into-static-variables/ 它应该可以正常工作。
从你的包结构来看,这些属性肯定应该被加载。唯一可能的选择是您已经实例化了您的Controller类,new Controller()而不是让 spring 注入类(使用@Autowired或构造函数注入)。
| 归档时间: |
|
| 查看次数: |
24506 次 |
| 最近记录: |