通过外部文件覆盖打包的Spring应用程序属性文件
开发Spring应用程序时,最常见的用例是您希望拥有多个版本的配置属性,具体取决于要部署到的位置,例如,数据库URL或功能标志可能是特定于dev,qa,production等环境的。
像大多数Spring开发任务一样,有多种方法可以解决问题。 我的偏好基于以下假设和偏好:
- 我们创建一个默认的配置属性文件(例如“ appConfig.properties”),并将其打包在可部署工件(JAR或WAR等)中
- 该文件将包含一组合理的默认“基线”属性,应用程序需要这些属性才能成功运行
- 我们要通过位于已部署应用程序的工作目录中的外部文件覆盖基准appConfig.properties文件中的属性
- 我们通常将此文件命名为appConfigOverride.properties
- 在执行应用程序或设置系统变量时,可以通过在命令行上传递参数来覆盖应用程序属性,但这是一个单独的主题
解决方案
我们为application-context.xml使用以下结构:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"><context:property-placeholder location="file:appConfigOverride.properties" order="-1"ignore-unresolvable="true" ignore-resource-not-found="true" /><context:property-placeholder location="classpath:appConfig.properties" />....</beans>
这里的关键是'order'属性,当在另一个文件中也找到该属性(有效覆盖另一个文件中的值)时,该属性将强制使用在appConfigOverride.properties中找到的属性,以及'ignore-unresolvable = “ true” ignore-resource-not-found =“ true”'允许Spring在找不到外部文件(或不包含覆盖appConfig文件的所有默认属性)的情况下继续加载上下文
翻译自: https://www.javacodegeeks.com/2013/07/overriding-a-packaged-spring-application-properties-file-via-an-external-file.html
通过外部文件覆盖打包的Spring应用程序属性文件相关推荐
- asar软件包linux,ASAR文件查看打包解包工具下载-ASAR文件查看打包解包工具v2018.07.12免费版-ucbug软件站...
ASAR文件查看打包解包工具是一款能够帮助用户对ASAR文件进行管理的工具,通过ASAR文件查看打包解包工具能够对文件进行查看.打包.解包等功能,有需要的可以下载使用. 功能介绍 electron的a ...
- Spring Boot——读取属性文件的多种方法
前言 在程序开发中,为了减少程序中的"硬编码",我们通常会将一些信息放在属性文件中,再读取到程序中.Spring 提供了多种便利的方法帮助我们从属性文件中读取数据. 一.属性文件加 ...
- 【webpack】使用webpack打包图片文件、打包时生成单独的css文件
使用webpack打包图片文件 在scr目录下创建image文件夹,并且添加几张图片 在main.js使用import方式引入所有图片,并且append到app节点下 // 引入图片资源 import ...
- java中重新加载指定文件_java-更改后重新加载属性文件
我将属性文件加载到一个类中,然后在整个应用程序中使用该类来获取它们. public class PropertiesUtil extends PropertyPlaceholderConfigurer ...
- linux文件的打包与下载总结,linux下文件的打包和压缩
一.文件压缩的原理 简单来说,压缩技术就是在存储时将文件里面没有使用的空间利用起来,主要有以下两种情况. 存储时去掉没有用到的空间.假设我们只是存储一个数字 1 ,二进制表示数字1只需1个bit是1就 ...
- Spring Cloud: .yml属性文件配置 (完善中)
服务消费端 server:port: 8080 spring:application:name: orderservice # spring cloud 服务名称# 数据源datasource:dri ...
- linux压缩指定时间的文件,Linux下压缩某个文件夹(文件夹打包)
tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.ta ...
- Spring-使用外部属性文件01
导读 概述 PropertyPlaceholderConfigurer属性文件 实例 使用PropertyPlaceholderConfigurer属性文件 PropertyPlacerholderC ...
- linux的文件压缩打包操作,Linux文件管理-压缩打包
原标题:Linux文件管理-压缩打包 压缩打包介绍 windows下我们接触最多的压缩文件就是.rar格式, 但Linux有自己所特有的压缩工具. 如果希望windows和Linux互相能使用的压缩工 ...
最新文章
- MCSE2003学习之六
- android 字符串函数,Android JNI开发系列(六)字符串操作
- php引用数据检测,利用单元测试检查PHP代码
- 安装Microsoft Sysprep工具
- 四五六年级计算机教学计划,五六年级信息技术教学计划
- (46)FPGA对数运算符(V代码实现)
- CCFollow和ActionCallFunc
- keymap in ubuntu
- 深入理解HTTP一:网络基础TCP/IP
- java 将pdf文件转成高清图片(多张合并成一张)
- 学习Java时,要记住的知识点太多,记不住怎么办?
- tomcat运行后报错“Address localhost:1099 is already in use”
- ChatGPT聊天机器人如何发图片????
- Access Points (单调栈)
- 实体知识+字典树辅助jieba的分词(并对三国演义进行简单分析)
- 小米手环硬件构成及原理图
- 部署报错$notify
- 邮箱满了,但是Web邮箱又登陆不上怎么办?
- python协程使用场景桌面_python协程的使用
- 如何利用数据挖掘告别单身
热门文章
- php 向html追加元素,在PHP中存储兄弟元素的属性和内部HTML
- JDBC元数据操作(一)-- DatabaseMetaData接口详解
- java oca_OCA第6部分中的Java难题
- 无服务器–仅仅是构建现代应用程序的一种方法?
- dynamodb java_使用Java更新DynamoDB项
- ogm session_带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序
- maven 部署nexus_设置本地Nexus存储库并从Maven部署WAR文件
- junit:junit_简而言之,JUnit:另一个JUnit教程
- hibernate jpa_JPAHibernate替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?...
- Hibernate字节码增强