spring-配置文件外化
什么配置文件外化?
配置文件外化指的是将类型于数据库或者一些日志相关的配置文件移到项目之外,系统启动的时候通过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
- Python接口自动化-7-unittest
- cobbler自动安装系统(Centos7.X)
- Linux NTP时间服务器
- 子查询的另一种方式——映射
- LNMP架构之搭建wordpress博客网站
- Nginx的各种报错总结
- 谷歌TensorFlowLite正式发布,机器学习框架向移动端大步挺进!
- ABP+AdminLTE+Bootstrap Table权限管理系统一期
- 18888元秒下的域名sdhlx.com已建站
- 锂离子电池发明人:自动驾驶汽车电池需要更加耐用
- Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤
- Nginx服务编译安装、日志功能、状态模块及访问认证模式实操
- 快速入门系列--WebAPI--03框架你值得拥有
- 快速入门系列--MVC--06视图
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- meta图表解读
- R海拾遗-森林图绘制
- R海拾遗---热图绘制-pheatmap
- R-随笔-from homework
- The world loves you
- dplyr_new version-across
- dplyr_下篇
- 技术无罪or技术原罪?爬图小心查水表
- scihub? no!
- Elasticsearch:top_hits aggregation
- Elasticsearch:Elasticsearch 中的 refresh 和 flush 操作指南
- Flutter 和 iOS 之间的 Battle:手势交互谁才是老大?
- python 爬取B站原视频的实例代码
- flink实战-使用自定义聚合函数统计网站TP指标
- 详解flink中Look up维表的使用