`
tinyhema
  • 浏览: 152912 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring中使用placeholder实现多环境适配

    博客分类:
  • java
 
阅读更多
背景

某个jar包里使用了PropertyPlaceholderConfigurer,配置文件也打在jar包里,有些场景下要求覆盖配置文件。

代码如下:
    <bean id="_db_config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:db-config.properties"/>
    </bean>


实现
PropertyPlaceholderConfigurer 提供了locations属性,可以添加多个配置文件,并且后面的文件中的相同变量会覆盖前面的。
我们可以通过定义多个配置文件的方式,来达到覆盖配置文件的目的。
例如,我们可以定义 dev.properies、product.properties文件,分别代表开发环境、生产环境的配置项,在生产环境提供product.properties覆盖dev.properties,达到适配不同环境的目的。

    <bean id="_db_config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
        	<list>
        		<value>classpath:db-config.properties</value>
        		<value>file:/home/admin/db-config-product.properties</value>
        	</list>
        </property>
        <property name="ignoreResourceNotFound" value="true" />
    </bean>


注意 ignoreResourceNotFound 属性,它的作用是 在找不到locations中指定的文件时,忽略异常继续流程,这样就不需要在每个环境都提供product配置了。


除了使用PropertyPlaceholderConfigurer的locations属性方式外,还可以通过自定义PlaceHolder实现的方式来扩展,以解决其它更复杂的问题。

ps:环境适配的方案很多,在工程规模较小的时候可以使用此方案。
分享到:
评论

相关推荐

    基于Spring2.0 Property Placeholder配置的源码例子

    这个例子“基于Spring 2.0 Property Placeholder配置的源码”展示了如何在应用程序中使用Property Placeholder来动态加载和替换配置文件中的属性值,从而实现配置的灵活性和可重用性。下面将详细介绍这个主题。 1. ...

    jQuery placeholder实现源码(兼容所有浏览器)

    本文将深入解析一个使用jQuery实现`placeholder`功能的源码,并探讨其工作原理。 首先,让我们理解`jQuery`的`placeholder`插件的基本思路。这个插件的主要任务是检测浏览器是否原生支持`placeholder`属性,如果不...

    Spring中property-placeholder的使用与解析详解

    Spring 中 property-placeholder 的使用与解析详解 -property-placeholder 是 Spring 框架中的一种机制,用于加载和解析 properties 文件中的配置信息。在本文中,我们将详细介绍 property-placeholder 的使用和...

    SSH笔记-通过property-placeholder使用外部属性文件

    在Spring框架中,`&lt;context:property-placeholder&gt;`是用于加载和解析属性文件的一个标签,它允许我们在XML配置或Java配置中使用占位符 `${...}` 来引用属性文件中的值。这样做的好处是,我们可以将敏感信息如数据库...

    借助jquery placeholder实现HTML5中placeholder特效.zip

    本工程旨在借助jquery placeholder实现HTML5中placeholder特效。 本工程编码方式:UTF-8 相关博客:http://blog.csdn.net/gaohuanjie/article/details/37724305

    HTML5 Placeholder实现input背景文字提示效果

    这种效果现在网上非常的普遍流行,但大部分是使用JavaScript实现的。但HTML5给我们提供了新的纯HTML的实现方式,不需要任何的JavaScript,只需要在你的input文本框的标记上添加HTML5规范里新增的placeholder属性,...

    IE8支持的placeholder组件

    `demo`目录下的文件可以帮助你理解和学习如何在实际项目中使用这个组件。`README.md`文件通常会提供详细的使用指南和配置选项,这对于理解组件的工作原理和正确配置至关重要。 需要注意的是,虽然`jquery-...

    asp.net(C#) placeholder的使用案例

    总之,ASP.NET(C#) 中的 Placeholder 控件是实现动态内容、数据绑定和响应式设计的重要工具。通过合理利用 Placeholder,开发者可以提高代码的灵活性和可维护性,为用户提供更佳的交互体验。在实际项目中,结合其他...

    input中placeholder在Ie上兼容

    以下是一个简单的jQuery插件示例,用于在不支持`placeholder`属性的IE浏览器中实现类似的功能: ```javascript (function($){ // 检查浏览器是否支持placeholder属性 if (!('placeholder' in document....

    IE下实现placeholder效果的jquery插件

    本篇将详细介绍如何使用一个名为"placeholderfriend.js"的jQuery插件,在IE浏览器下实现`placeholder`效果。 首先,我们来看`placeholderfriend.js`插件的基本原理。这个插件的工作机制是通过监听页面加载和输入框...

    React Native预设占位placeholder的使用

    通过使用`rn-placeholder`库,开发者可以在React Native应用中实现类似Facebook的骨架屏效果,提高用户体验,使内容加载过程更为流畅,避免了传统加载指示器带来的生硬感。这不仅提升了应用的整体质量,也体现了对...

    PlaceHolder

    标题中的"PlaceHolder"可能是指如何在ASP.NET中使用`PlaceHolder`控件来创建一个动态的输入字段,例如`TextBox`。描述中的“example of a PlaceHolder in asp.net”则可能是指一个具体的示例,演示如何在页面上创建...

    IE兼容placeholder js

    标题中的“IE兼容placeholder js”指的是在Internet Explorer(IE)浏览器,尤其是IE9及以下版本中,实现HTML5中的`placeholder`属性兼容性问题的一种JavaScript解决方案。`placeholder`属性是HTML5新引入的一个功能...

    Spring 3.x 中文开发手册.pdf

    Spring 3.x 还引入了属性抽象层,这使得开发者可以在配置文件中使用占位符(placeholder),从而减少因环境变化而频繁更改配置文件的需求。例如,可以使用 `${JAVA_HOME}/com/bank/service/${env}-config.xml"/&gt;` 来...

    关于spring系统中多系统的配置

    #### Spring中的PropertyPlaceholderConfigurer类 在Spring框架中,`PropertyPlaceholderConfigurer`是一种特殊的Bean,它被用来处理Spring配置文件中的占位符(placeholder),并将它们替换为具体的值。这些值通常...

    iOS可以显示placeholder的TextView

    在提供的压缩包文件`CloverTextDemo`中,可能包含了这个自定义控件的示例代码,包括`PlaceholderTextView`的实现文件(`.m`和`.h`),以及一个简单的使用示例(`.swift`或`.m`)。开发者可以通过运行这个示例,了解...

    vue + el-input 中 textarea 实现 placeholder 换行

    然后,在`style`标签中,我们使用`::v-deep`选择器(或`&gt;&gt;&gt;`)定位到`el-input__inner`内部的`textarea`,并通过`::-webkit-input-placeholder`伪元素来改变`placeholder`的样式。`white-space: pre-wrap`允许空白...

    placeholder效果

    为了解决这个问题,我们可以采用一些JavaScript库或者自定义JavaScript代码来模拟`placeholder`的效果,确保在不支持该属性的浏览器中也能实现类似的功能。在这个场景中,我们有两个文件:`placehoder.html` 和 `...

    用CSS实现textArea中的placeholder换行功能

    Firefox同样支持在placeholder中使用:after伪元素来添加内容,但不需要指定`display`属性,因为Firefox默认会将:after伪元素当作块级元素来处理。 需要指出的是,由于placeholder属性的设计初衷是一个简短的提示,...

Global site tag (gtag.js) - Google Analytics