提问人:Randy T 提问时间:8/11/2023 更新时间:8/14/2023 访问量:35
Spring Boot 使用记录 clas 将元数据存储在 .yml 文件中不起作用
Spring Boot using record clas to store metadata in .yml file not work
问:
我正在尝试读取 .yml 文件中的元数据,然后在记录类中注入值,最后在其他类中使用这些值。
我有一个 application.yml 文件,其值为:
teamson:
clientId: 123
clientSecret: 456
tenantId: 789
hava a GaphConfig.java :
@ConfigurationProperties(prefix = "teamson")
public record GraphConfig(String clientId, String clientSecret, String tenantId) {
}
并希望在tryRead.java中使用元数据值:
@Component
public class tryRead {
@Autowired
private static GraphConfig cofig;
public static void main(String arts[]){
System.out.println(cofig.clientId());
}
}
但总是出现错误:无法调用“com.xxx.GraphConfig.clientId()”,因为“com.xxx.tryRead.cofig”为空
我包括了 depedency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
我使用 JAVA 17 和 SpringBoot 版本 2.7.14
我想要 System.out.println(cofig.clientId());在类 tryRead 中可以读取在 properties.yml 中设置的 id 也可以在其他春季课程中重复使用
答:
0赞
Randy T
8/14/2023
#1
最后。。。我发现了这个问题发生了什么,这是我的错别字:“appication.yml”,因为Spring Boot只能读取名称“application.yml”。
然而,这引出了另一个问题,我一直在寻找答案:我有没有办法读取任何命名的yml文件?例如,如果我想使用“config-dev.yml”或“config-prod.yml”来读取开发版本或生产版本具有相同属性名称的不同值。
评论
0赞
Kirby
8/16/2023
可能最好在新帖子中提出您的新问题
评论
@Autowired
@Component
@RestController
@GetMapping
@autowired
public String coachid = "123";