如何仅更新spring配置文件中的某些值

时间:2017-06-19 10:08:04

标签: java spring yaml

有没有简单的方法如何更新spring配置文件中的某些值? 我使用.yml配置文件,用户可以在纯文本或加密密码中设置密码。我想在我的CLI应用程序中输入命令,该应用程序对所有密码进行加密,但不会覆盖整个文件(不会从配置文件中删除用户注释)。

1 个答案:

答案 0 :(得分:0)

由于您在编程网站上提问,我认为程序被认为是一个简单的解决方案。唯一需要不变的是索引要更新的实际值。

首先安装ruamel.yaml(免责声明:我是该套餐的作者),这将保留您的评论等往返

import sys
from ruamel.yaml import YAML
from ruamel.yaml.util import load_yaml_guess_indent

yaml = YAML()

with open(sys.argv[1]) as fp:
    data, indent, bsi = load_yaml_guess_indent(fp)

# adjust this
data['path']['to']['password'] = sys.argv[2]

with open(sys.argv[1], 'w') as fp:
    yaml.dump(data, fp)