我的 springboot 应用程序有一些 yml 文件(每个文件用于各种配置文件 - dev、prod)来加载配置。我正在将配置移至数据库。
示例配置如下:
admin:
id: user05
firstname: Brian
lastname: Leavy
purl: http://plixes.com/seai/ji
我从数据库读取值并将其保存在本地。我不知道如何将程序中的这些值注入(inject)到这些值上,例如键值,as,
admin.id:user05
admin.firstname: Brian
admin.lastname: Leavy
admin.purl: http://plixes.com/seai/ji
以便应用程序可以正常使用它们。 我需要它们很早就初始化,因为有些值是 springboot 配置,例如,
server:
port: 5007
任何指示都会非常有帮助。
编辑1:
我经过几个小时的搜索才发现,你可以做这样的事情,
SpringApplication app = new SpringApplication(Lexon.class);
app.setDefaultProperties(Collections
.singletonMap("server.port", "5007"));
app.setDefaultProperties(Collections
.singletonMap("admin.id", "user05"));
这可行,但看起来不干净。
有更好的方法吗?
最佳答案
有 Spring Boot 配置库,可以将配置外部化到数据库或 git 存储库。
这样,您就可以添加数据源和 SQL 语句来检索属性值。
例如,在 application.yml 上:
spring:
cloud:
config:
server:
jdbc:
sql: SELECT KEY, VALUE from MY_PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=?
查看此网站了解更多详细信息:https://www.devglan.com/spring-cloud/jdbc-backend-spring-cloud-config
关于java - 如何从代码而不是从我的 application-dev.yml、application-prod.yml 初始化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57167217/