SPRING_APPLICATION_JSON是Spring Boot应用程序中的一个特殊环境变量,它允许在应用程序的配置文件或命令行参数中传递JSON格式的数据。这样,开发人员可以使用JSON格式的数据来配置应用程序,而不必编写复杂的XML或属性文件。为了提高这个环境变量内容的可读性和可维护性,我们可以将JSON内容格式化,并允许使用注释。
下面是一个示例配置,像其它配置文件一样,我们希望将JSON格式化,并使用注释对配置项进行解释,这样可读性和可维护性都非常好:
export SPRING_APPLICATION_JSON='{
"server.port":8080,
#指定额外的配置文件位置,优先级低于默认位置,高于spring.config.location指定的位置
"spring.config.additional-location":"${user.home}/config/"
}'
上述配置使用#注释,使用单引号允许 SPRING_APPLICATION_JSON 的值可以换行。然而,这个 JSON 串中因为使用 # 注释导致JSON格式错误,直接使用这种方式的配置 Spring Boot 是不能正确解析的,启动时会报错 "org.springframework.boot.json.JsonParseException: Cannot parse JSON"。因此,我们需要使用一段脚本来处理这个问题:
#.reexport_SPRING_APPLICATION_JSON
jsonarr=()
while read -r line; do
if [[ $line =~ ^# ]]; then