spring boot yaml文件配置根据java接口中的参数改变值

spring boot yaml配置文件参数根据程序动态改变

我们的需求是会有不同的数据库,包括oracle,mysql等等,所以yaml文件不能写死读某个库,需要前端切换数据库的时候把配置文件查询库也要切换到对应的上面

话不多说,直接上代码,觉得有帮助的记得点个赞

@SuppressWarnings("all")
    public static void updateYamlFile(DatabaseConnect connect) {
        String src = "src/main/resources/application-dev-mysql.yml";
        Yaml yaml = new Yaml();
        FileWriter fileWriter = null;
        //层级map变量
        Map<String, Object> springMap, dataSourceMap, resultMap;
        try {
        	//读取yaml文件,默认返回根目录结构
            resultMap = (Map<String, Object>) yaml.load(new FileInputStream(new File(src)));
            //get出spring节点数据
            springMap = (Map<String, Object>) resultMap.get("spring");
            //get出数据库节点数据
            dataSourceMap = (Map<String, Object>) springMap.get("datasource");
            //修改数据库url,我这个是封装的参数,你们测试可以写死一个值尝试修改即可
            dataSourceMap.put("url", connect.getUrl());
            //登录名
            dataSourceMap.put("username", connect.getUsername());
            //密码
            dataSourceMap.put("password", connect.getPassword());
            //字符输出
            fileWriter = new FileWriter(new File(src));
            //用yaml方法把map结构格式化为yaml文件结构
            fileWriter.write(yaml.dumpAsMap(resultMap));
            //刷新
            fileWriter.flush();
            //关闭流
            fileWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("对不起,yaml文件修改失败!");
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值