V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gibber
V2EX  ›  程序员

springboot 中如何读取配置文件中的动态名称的参数

  •  
  •   gibber · 2021-08-27 16:24:35 +08:00 · 1655 次点击
    这是一个创建于 1178 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想在配置文件中加入多数据源配置 但数据源的数量是不确定的 如果在 properties 中按如下方式配置有没有办法可以读取 db1.type=mysql db1.url=xxx db1.username=xxx db1.password=xxx

    db2.type=oracle db2.url=xxx db2.username=xxx db2.password=xxx ...

    其中 db1, db2 是可变的

    6 条回复    2021-08-28 07:29:11 +08:00
    chendy
        1
    chendy  
       2021-08-27 16:38:05 +08:00
    用 Map
    largebeef
        2
    largebeef  
       2021-08-27 16:51:59 +08:00
    env.get 可以动态获取
    egfegdfr
        3
    egfegdfr  
       2021-08-27 17:12:41 +08:00
    用 list 包一层不就可以了,具体可以参照企业微信 多账户支持的实现
    github.com/binarywang/weixin-java-cp-demo/blob/master/src/main/java/com/github/binarywang/demo/wx/cp/config/WxCpProperties.java
    dadaoqueyi
        4
    dadaoqueyi  
       2021-08-27 23:48:06 +08:00
    再加个配置 custom.datasource=db1,db2,db3
    Belmode
        5
    Belmode  
       2021-08-28 00:39:42 +08:00
    前面再加个前缀,后面的用 list 接收,就可以了,很基础的问题。

    properties 配置
    my.datasource[0].db1.type=mysql
    my.datasource[1].db2.type=oracle

    yml 配置
    my.datasource
    -db1:
    type: mysql
    -db2:
    type: oracle
    gibber
        6
    gibber  
    OP
       2021-08-28 07:29:11 +08:00
    @Belmode
    @egfegdfr
    谢谢,忘记还能读取 list,不过老大不让用 list 读,所以还是用 env 按需动态拼接去读了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1623 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:41 · PVG 00:41 · LAX 08:41 · JFK 11:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.