如何解决以编程方式永久覆盖 application.properties
我想开发一个 API,使非程序员能够设置电子邮件属性,如端口或主机。我发现我可以使用 Spring Boot 注释 @ConfigurationProperties 在类中加载属性。
@Configuration
@ConfigurationProperties(prefix = "company.mail")
@Data
public class ConfigProperties {
private Long port;
private String host;
}
我可以使用例如检索属性getPort 并使用 setPort 设置它们。
然而,使用这种方法,application.properties 文件中的实际值在我使用 setPort 或 setHost 时不会改变。因此,当我重新启动应用程序时,更改会丢失。有没有办法实际更改 application.properties 文件中的值,或者我是否需要一个可以在应用程序启动时从中加载属性的数据库?
解决方法
您可以外部化您的配置文件(检查 spring documentation)。
为此,在您的 pom.xml 中添加以下依赖项:
马文:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
然后在您的 git 服务器上创建一个 git 存储库并将以下内容添加到您的 application.properties 中:
spring.cloud.config.server.git.uri=http://{yourGitRepoUrl}.git
并在您的 SpringBootApplication 类中添加 @EnableConfigServer 注释。 最后通过将以下内容添加到 application.properties 将您的应用链接到您的配置服务器:
spring.cloud.config.uri=http://localhost:8080 #whatever your port is
有关更多详细信息,请查看这个漂亮的 Tutorial。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。