gpt4 book ai didi

java - Springboot 中的 @Value 返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:04 26 4
gpt4 key购买 nike

我有 application.properties,它位于资源中

应用程序属性

hsm.provider=software
hsm.name=TestHsm
hsm.port=3001
hsm.ip=127.0.0.1
hsm.timeout=10000

Controller

@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);
}
}

最佳答案

从您的包结构来看,这些属性肯定会被加载。唯一可能的选择是您已将 Controller 类实例化为 new Controller() 而不是让 spring 注入(inject)该类(使用 @Autowired 或构造函数注入(inject))。

关于java - Springboot 中的 @Value 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53482633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com