本文主要是介绍spring-配置文件外化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
什么配置文件外化?
配置文件外化解决了什么问题?
实现方式:
公共配置
dev配置测试
代码下载:https://gitee.com/hong99/spring/issues/I1N1DF
最后:
什么配置文件外化?
配置文件外化指的是将类型于数据库或者一些日志相关的配置文件移到项目之外,系统启动的时候通过jvm参数进行加载。
配置文件外化解决了什么问题?
配置文件外化主要解决的问题,就是当然配置文件中改了配置,不需要再重新打包,而只需要将配置文件通过git或者其他上传文上,上传到对就的服务器,然后项目重启就可以了,有些不需要启动的实现就生效了,这样一来减少,因为耦合在项目中,需要每次打包。
实现方式:
公共配置
新增两个配置文件,放到D盘中,可以到项目中获取。
com.hong.spring.config.SystemInfo
package com.hong.spring.config;import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** @Auther: csh* @Date: 2020/9/16 17:10* @Description:获取系统变量*/
@Component
@Data
public class SystemInfo {@Value("${system.name}")private String systemName;
}
com.hong.spring.controller.IndexController#systemName
@RequestMapping(value = "systemName")
@ResponseBody
public String systemName(){return systemInfo.getSystemName();
}
配置文件内容如下:
systemConfig/spring_dev.properties
system.name=dev
systemConfig/spring_idc.properties
system.name=idc
在windows上实现服务配置外化
dev配置测试
-Dconfig_env=dev -DsystemConfigPath=D:\config
测试dev在tomcat VM options加入以上,如图
idc配置测试
-Dconfig_env=idc -DsystemConfigPath=D:\config
测试idc在tomcat VM options加入以上,如图
结果
关于Linux系统上面的配置
同样是在java环境变量运行的时候添加如下,关于如何配置linux环境变量参照如下:
文章:https://www.cnblogs.com/youyoui/p/10680329.html
添加环境变量
然后将配置文件全部上传linux,启动项目的时候java -jar xxx -Dconfig_env=idc或-Dconfig_env=dev
结果
代码下载:https://gitee.com/hong99/spring/issues/I1N1DF
最后:
配置文件外化,在spring boot和spring cloud都是很好的支持,在spring cloud还有一个远程配置中心,但是对于传统spring springmvc 这种4.x或以下的,项目很多项目负责真的不清楚该如何支持,通过jvm方式完美的解决该问题,本文仅做参考有更多建议请留言或交流讨论。
参考文章:
https://segmentfault.com/a/1190000015069140
https://cloud.tencent.com/developer/article/1424283
https://juejin.im/post/6844903864534040584
这篇关于spring-配置文件外化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!