gpt4 book ai didi

java - Spring Boot 获取 application.properties 的实例(或其文件路径)

转载 作者:行者123 更新时间:2023-12-02 01:07:34 27 4
gpt4 key购买 nike

我使用的是spring boot,我需要获取启动时加载的application.properties文件的实例;是否可以?? (一个可能的解决方法是找到启动时加载的 application.properties 的文件路径......但如何获取它?)

目前我的项目中有一个 application.properies ,但将来我必须从包含完整路径的环境变量中获取它

包含我的属性管理的类是这样的:

@Component
public class SpringBootConfigurations {

public static String PROP_JIRA_USER;

@Value("${jira.user}")
private void setJiraUser(String user) {
PROP_JIRA_USER = user;
}

public static String PROP_JIRA_PASSWORD;

@Value("${jira.password}")
private void setJiraPassword(String password) {
PROP_JIRA_PASSWORD = password;
} etcc...

谢谢

最佳答案

听起来您需要 java File 对象的属性来匹配 SMTP 库的签名。一种方法是将属性作为类路径资源读取。

@Value("classpath:data/application.properites")
Resource resourceFile;

从那里您可以使用 getFile 调用转换为文件并将其传递给库。

但是,您最好创建一个 ConfigurationProperties 对象,然后使用 FileWriter 以编程方式生成文件并将其传递。在实现过程中,具体发生的事情会更加声明性和清晰。

添加有关配置属性的更多详细信息。你可以这样做:

@Configuration
@ConfigurationProperties(prefix = "smtp")
public class ConfigProperties {

private String host;
private int port;
private String username;
// other smtp props
// standard getters and setters

public File propsAsFile() {
Properties props = new Properties();
props.setProperty("smtp.host", host);
props.setProperty("smtp.port", port);
...
File temp = File.createTempFile("xyz",".properties");
FileOutputStream propsStream = new FileOutputStream(temp)
prop.store(propsStream, null);
}
}

@Kayaman 的评论也是正确的。仅当您绝对需要时才进行这些文件操作(似乎您不太可能需要所有这些,但取决于您正在使用的库)

有关配置属性的更多信息 https://www.baeldung.com/configuration-properties-in-spring-boot

关于java - Spring Boot 获取 application.properties 的实例(或其文件路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59820883/

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