java - 如何从代码而不是我的 application-dev.yml、application-prod.yml 初始化属性
问题描述
我的 springboot 应用程序有一些 yml 文件(每个文件用于各种配置文件 - dev、prod)来加载配置。我正在将配置移至数据库。
示例配置就像,
admin:
id: user05
firstname: Brian
lastname: Leavy
purl: http://plixes.com/seai/ji
我有从数据库读取的值并在本地保存。我不确定如何在我的程序中将这些值注入到这些值中,例如键值,例如,
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
推荐阅读
- wordpress - Woocommerce 电子邮件主题订单_未翻译日期
- delphi - 从滚动列表中删除动态创建的面板
- excel - VBA - 哪个表称为宏,然后做一些事情
- javascript - 如何修复我的函数试图在 javascript 中找到最小值
- tensorflow - 分布式张量流:首席工作者的工作是什么?
- python-3.x - 如何使用 selenium python 识别 GitHub 页面标题徽标 invertocat
- c++ - Boost beast::websocket 回调函数
- javascript - 使用javascript获取不在单独文件中的xml的属性
- github-pages - Github 页面不使用 index.html
- footer - 修复粘性页脚而不重叠正文内容