gpt4 book ai didi

java - 如何使用 Spring Boot 外部化配置?

转载 作者:行者123 更新时间:2023-12-02 01:52:03 24 4
gpt4 key购买 nike

它只是不起作用。我看到了文档

https://docs.spring.io/spring-boot/docs/1.5.19.RELEASE/reference/htmlsingle/#boot-features-external-config

我在以下位置看到了答案

Spring boot externalize config properties/messages on Java annotations

我有

    MailTrainAPI mt = new MailTrainAPI();
mt.sendMail(map);

...

@Component
public class MailTrainAPI {
@Value("${mailtrain.url}")
private String API;

public void sendMail(MultiValueMap<String, String> map) {
System.out.println("API = "+API);
API = System.getProperty("mailtrain.api");
System.out.println("API = "+API);
API = System.getenv("mailtrain.api");
System.out.println("API = "+API);
<小时/> src/main/resources/application.properties
mailtrain.url=http://mail.galaxy.store/api/send/galaxybadge

打印

API = null
API = null
API = null

它不起作用,因为我自己实例化了该类,而 Spring 不知道它。如何访问 application.properties 中的属性手动归档?

Spring Boot 1.5.21

最佳答案

MailTrainAPI 应该是一个 Spring bean,又名组件,由于 @Component 自动扫描,然后注入(inject)@Value("${mailtrain.url}")

但是,当您调用 new MailTrainAPI() 时,您自己创建了该类的单独实例。不要这样做。

使用该对象的代码必须通过注入(inject)到字段中来接收它,例如

@Autowired
private MailTrainAPI mt;

关于java - 如何使用 Spring Boot 外部化配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57420908/

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