当前位置:   article > 正文

spring boot yaml文件配置根据java接口中的参数改变值_bootstrap.yaml文件中设置变量0100000值会变

bootstrap.yaml文件中设置变量0100000值会变

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文件修改失败!");
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/326246
推荐阅读
相关标签
  

闽ICP备14008679号