[spring]<context:property-placeholder/>
问题:
有些参数在某些阶段中是常量,这些参数在不同阶段之间又往往需要改变,如:
- 在开发阶段我们连接数据库时的url,username,password等信息
- 分布式应用中client端的server地址,端口等
解决方案:
Spring3中我们可以使用spring3中提供的<context:property-placeholder/>,在数据库配置文件中可以这样写:
1.配置数据库相关参数
<context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/>
或者Spring 2.5:
<bean id="propertyPlaceholderConfigurer" class="org.springframework,beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:jdbc.properties"/>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
ignore-unresolvable="true":
如果不加会报错:Could not resolve placeholder...
原因是因为:spring容器只会维护一个PropertyPlaceholderConfigurer的bean实例,当spring发现容器中有一个该实例后,就会忽略其余的,所以,该标签只能配置一个,多余的spring会自动忽略。
在spring2.5中可使用:
<property name="ignoreUnresolvablePlaceholders" value="true" />
2.jdbc.properties:
jdbc.driverClassName=org.postgresql.Driver
jdbc.urlSaas=jdbc:postgresql://180.96.28.100/db
jdbc.usernameSaas=test
jdbc.passwordSaas=1 druid.pool.size.max=20
druid.pool.size.min=3
druid.pool.size.init=3
3.配置数据源
<bean id="dataSourceSaasdb" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.urlSaas}" />
<property name="username" value="${jdbc.usernameSaas}" />
<property name="password" value="${jdbc.passwordSaas}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${druid.pool.size.init}" />
<property name="minIdle" value="${druid.pool.size.min}" />
<property name="maxActive" value="${druid.pool.size.max}" />
<!-- 配置监控统计拦截的filters,wall用于防止sql注入,stat用于统计分析 -->
<property name="filters" value="wall,stat" />
</bean>
[spring]<context:property-placeholder/>的更多相关文章
- Spring《错误集合,总结更新》
1.这几天配置springmvc 使用注解,并且自动扫描注解,当我单个配置,不用自动扫描,出现下面错误,找了很多人跟我看,配置也没问题,但是就是显示不出东西,所说的类也去看了,没有问题 這是我的模拟数 ...
- springboot整合mybatis步骤以及错误集合
1.首先在springboot项目中的pomx文件引入官方的依赖 <groupId>org.mybatis.spring.boot</groupId> <artifact ...
- DataStage 错误集(持续更新)
DataStage 错误集(持续更新) DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 D ...
- Spring学习--集合属性
Spring 中可以通过一组内置的 xml 标签(例如: <list> , <set> 或 <map>) 来配置集合属性. 配置java.util.Set 需要使用 ...
- git使用技巧集合(持续更新中)
git使用技巧集合(持续更新中) 在团队协作中,git.svn等工具是非常重要的,在此只记录一些git使用过程中遇到的问题以及解决方法,并且会持续更新. 1.git commit之后,还没push,如 ...
- spring开发中常见错误集合,逐步添加
1.关于jstl错误:原因,在jsp页面中使用了jstl标签库,但是却没有导入,可以将相应的jar包放在tomcat的lib目录下,一劳永逸 Java.lang.NoClassDefFoundErro ...
- IOS开发错误提示原因集合-----长期更新
"[__NSCFConstantString size]: unrecognized selector sent to instance." =>将NSString类型的参数 ...
- python 报错错误集合——更新中
1. #!/usr/bin/env python # -*- coding:utf-8 -*- 'one #报错 File "C:\Users\shuxiu\Desktop\test.py& ...
- 学习Python中出现的错误集合(不定时更新)jupyter平台
出现的问题:1. 本图的错误,一个是line 7 init的两侧应该是是双下划线"__"导致所示错误 2. 本图的错误是 line 12 Student.student_tatal ...
- spring错误汇总
在学习spring过程中遇见了种种不同的异常错误,这里做了一下总结.希望遇见类似错误的同学们共勉一下. 1. 错误一 Error creating bean with name 'helloServi ...
随机推荐
- 001-hive是什么
一.基本概念 官网含义:https://cwiki.apache.org/confluence/display/Hive/Home The Apache Hive™ data warehouse so ...
- python学习笔记(二十一)构造函数和析构函数
python中的特殊方法,其中两个,构造函数和析构函数的作用: 比说“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数.那么我们就可以把要先初始化的属性放到这 ...
- vim文本编辑操作
文本选择操作 为了方便地选取文本块,Vim编辑器引入了可视模式(Visual Mode).要选取一段文本块,操作步骤如下: ▶ 将光标移动到要复制文本块的开始处.要注意的是 ...
- 以二进制方式读取图片保存到string
procedure TForm1.BitBtn1Click(Sender: TObject);var StringStream : TStringStream; FSize : integer; ...
- SQL Server WITH ROLLUP、WITH CUBE、GROUPING语句的应用
CUBE:CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP:ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合. GROUPING:当行由 CUBE 或 ROLLUP ...
- ionic 打包
比如我下载一个官方的小Demoionic start myApp tabs(我默认你已经配置好了安卓的开发环境.安装了全局的ionic.cordova) 首先,你需要给项目添加安卓平台的支持ion ...
- Winter-2-STL-D The Blocks Problem 解题报告及测试数据
Time Limit:3000MS Memory Limit:0KB Description Background Many areas of Computer Science use sim ...
- 使用自签名SSL证书配置HTTPS,解决浏览器提示不安全警告
项目测试过程中需要将应用从HTTP升级到HTTPS,浏览了网上一些帖子,参考<WebLogic11g-单双向SSL配置(以Springside3为例)>一文使用openssl工具来自建CA ...
- Java基础知识---continue
一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...
- union遇上ntext数据类型
http://www.myhack58.com/Article/html/3/7/2011/31392.htm