- 浏览: 378693 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (116)
- 生活 (1)
- 工作 (56)
- 健康 (0)
- 感情 (0)
- IT (45)
- 数据库 (11)
- Spring处理lob数据 (0)
- org.springframework.dao.InvalidDataAccessApiUsageException: OracleLobCreator needs to work on [oracle.jdbc.OracleConnection] (1)
- not on [com.mysql.jdbc.Connection]: specify a corresponding NativeJdbcExtractor; nested exception is java.lang.ClassCastException: com.mysql.jdbc.Connection (1)
- org.hibernate.DuplicateMappingException (1)
- js (3)
- Spring (2)
- PropertyPlaceholderConfigurer (1)
- Spring事务 (2)
- PROPAGATION_REQUIRED (1)
- PROPAGATION_SUPPORTS (1)
- PROPAGATION_MANDATORY (1)
- PROPAGATION_REQUIRES_NEW (1)
- setTimeout() (0)
- fn函数 (1)
- jstl标签 (1)
- 锚点 (1)
- 工作 urlrewrite 静态化 (1)
- 分享到微博 (1)
- hibernate (1)
- id to load is required for loading (1)
最新评论
-
wangyudong:
用Holer,只需要配置一个Access Key就搞定了htt ...
webservice发布以后在本地能够访问,但是在远程访问不了 -
梦幻无极:
[flash=200,200][url][img][list] ...
mysql Error Code : 1060 Duplicate column name 'ID' -
wqxdoc_pxiang9:
工程用什么软件
plc学习笔记 -
jiangxiankun:
请问一下这个需要什么jar包吗
用JAVA代码访问一段URL地址是否可用怎么写? -
361010911:
好乱!- -
java轮询程序的实现
1.Spring的框架中,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类可以将.properties(key/value形式)文件中一些动态设定的值(value),在XML中替换为占位该键($key$)的值,.properties文件可以根据客户需求,自定义一些相关的参数,这样的设计可提供程序的灵活性。
2.在Spring中,使用PropertyPlaceholderConfigurer可以在XML配置文件中加入外部属性文件,当然也可以指定外部文件的编码,如:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>conf/sqlmap/jdbc.properties</value>
</property>
<property name="fileEncoding">
<value>UTF-8</value>
</property>
</bean>
当然也可以引入多个属性文件,如:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/mail.properties</value>
<value>classpath: conf/sqlmap/jdbc.properties</value>//注意这两种value值的写法
</list>
</property>
</bean>
基本的使用方法是:
Xml代码
<bean id="propertyConfigurerForAnalysis" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:/spring/include/dbQuery.properties</value>
</property>
<property name="fileEncoding">
<value>UTF-8</value>
</property>
</bean>
其中classpath是引用src目录下的文件写法。
当存在多个Properties文件时,配置就需使用locations了:
Xml代码
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/spring/include/jdbc-parms.properties</value>
<value>classpath:/spring/include/base-config.properties</value>
<value>classpath*:config/jdbc.properties</value>
</list>
</property>
</bean>
接下来我们要使用多个PropertyPlaceholderConfigurer来分散配置,达到整合多工程下的多个分散的Properties文件,其配置如下
Xml代码
<bean id="propertyConfigurerForProject1" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="location">
<value>classpath:/spring/include/dbQuery.properties</value>
</property>
</bean>
Xml代码
<bean id="propertyConfigurerForProject2" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="2" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="locations">
<list>
<value>classpath:/spring/include/jdbc-parms.properties</value>
<value>classpath:/spring/include/base-config.properties</value>
</list>
</property>
</bean> 其中order属性代表其加载顺序,而ignoreUnresolvablePlaceholders为是否忽略不可解析的Placeholder,如配置了多个PropertyPlaceholderConfigurer,则需设置为true
3.譬如,jdbc.properties的内容为:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/mysqldb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=round;
jdbc.username=root
jdbc.password=123456
4.那么在spring配置文件中,我们就可以这样写:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath: conf/sqlmap/jdbc.properties </value>
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
5.这样,一个简单的数据源就设置完毕了。可以看出:PropertyPlaceholderConfigurer起的作用就是将占位符指向的数据库配置信息放在bean中定义的工具。
<!-- dataSource --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mappingResources"> <list> <value>cn/xg/hibernate/spring/User.hbm.xml</value><!--这里的映射路径问题,这种方法只能一个一个加--> <value>cn/xg/hibernate/spring/Group.hbm.xml</value> </list> <!-- 加载一个路径下的*.hbm.xml文件方法: <property name="mappingDirectoryLocations"> <list> <value>classpath:/cn/xg/spring/model</value> </list> </property> --> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> ${hibernate.dialect} </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <!-- DAO实现类extends HibernateDaoSupport,注入sessionFactory --> <bean id="userMgrImpl" class="cn.xg.hibernate.spring.UserMgrImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="groupMgrImpl" class="cn.xg.hibernate.spring.GroupMgrImpl"> <property name="sessionFactory" ref="sessionFactory" /> <property name="userImpl" ref="userMgrImpl"/> <property name="transactionTemplate" ref="transactionTemplate"/> </bean> <!-- 事务管理 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 编程式事务的写法 :向Dao实现类中注入transactionTemplate,调动其execute()方法,接口回调new TransactionCallback()--> <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate"> <property name="transactionManager" ref="transactionManager"/> </bean> <!-- 声时式事务第一种写法 --> <!-- <bean id="groupMgr" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager" ref="transactionManager" /> <property name="target" ref="groupMgrImpl" /> <property name="transactionAttributes"> <props> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="get*">PROPAGATION_REQUIRED</prop> <prop key="*">readOnly</prop> </props> </property> </bean> --> <!-- 声时式事务第二种写法 --> <!-- 事务的传播特性 <tx:advice id="txAdvice"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="get*" propagation="REQUIRED" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <aop:config> <aop:advisor pointcut="execution(* cn.xg.hibernate.spring.*.*(..))" advice-ref="txAdvice" /> </aop:config> --> </beans> jdbc.properties jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/数据库名 jdbc.username=数据库用户名 jdbc.password=数据库密码 hibernate.dialect=org.hibernate.dialect.MySQLDialect(方言.这里是MySql)
参考文章:
http://hi.baidu.com/seashell752/blog/item/2764310e2f35f2e137d1225f.html
http://hi.baidu.com/suny_duan/blog/item/e8e9b2a5f31d5efc9052ee8b.html
发表评论
-
id to load is required for loading
2013-05-07 16:47 1208今天遇到一个bug:id to load is requir ... -
mysql随机获取记录
2012-12-11 12:42 1154MYSQL的随机抽取实现方法。举个例子,要从tablename ... -
分享到微博js
2012-08-02 14:35 9971分享到微博js 1.分享到微博代码: var t ... -
js 定位
2012-02-02 11:31 3054前两天开发一个功能,显示所有记录之后,对某一条记录操作之后, ... -
jstl标签 函数
2012-02-02 11:02 1267jstl标签,fn函数 函数:fn:contains(stri ... -
java.lang.IllegalArgumentException: Failed to parse a valid name/value pair from
2011-11-23 16:48 2377昨天231被封了,所以只能换203的测试库,可是一启动就报错j ... -
JS中setTimeout()的用法详解
2011-11-07 17:20 0setTimeout( ) setTimeout( ) 是 ... -
Spring中的四种声明式事务的配置
2011-10-18 14:15 985Spring中的四种声明式事务的配置Spring容器中有两种 ... -
事务的传播行为和隔离级别
2011-10-18 11:13 2665一。Spring在TransactionDefi ... -
js动态添加删除表格
2011-10-11 15:25 1538//动态添加行 function addRowMx( ... -
Duplicate class/entity mapping com.sitechasia.xinnet.admin.checkip.model.AdmUser
2011-09-19 14:56 2216今天还算有点时间,就同步了一下我工作空间和cvs服务器上的代码 ... -
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape
2011-09-19 10:32 23745java编码解码 前两天修改了个功能,登陆的时候密码为‘% ... -
servlet页面跳转
2011-09-15 17:26 7906昨天晚上在公 ... -
ContentType
2011-08-25 10:14 1054[size=medium]ContentType 属性指定响 ... -
简单的下载例子
2011-08-25 10:07 1328前两天看代码,有一个下载的例子,我觉得写得挺全面 ... -
Spring Quartz定时器
2011-08-23 15:25 1491Spri ... -
java操作Excel(Jakarta_POI)
2011-08-23 14:15 1252一。 Jakarta POI 是一套用于访问微软 ... -
POI类库之工作表中文名乱码问题
2011-08-23 13:52 2041POI类库是JAVA平台下操作EXCEL的类库,功 ... -
cvs.exe [checkout aborted]: connect to scm1.ceopen.cn:2401 failed: 套接字操作尝试一个无法连接
2011-08-12 13:29 1925昨天想在cvs服务器上更新代码,但是一点更新之 ... -
Spring处理lob数据
2011-08-12 11:27 1636在ssh项目中有一个需要上传、下载的功能,并且将图片 ...
相关推荐
在Spring框架中,属性占位符`PropertyPlaceholderConfigurer`是一个重要的工具,用于处理配置文件中的属性值引用。它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加...
**属性占位符配置器**主要通过`org.springframework.beans.factory.config.PropertyPlaceholderConfigurer`类来实现。该类作为Spring的容器后处理器,在应用程序上下文初始化阶段自动读取指定的属性文件,并将其中的...
Spring及Mybatis整合占位符解析失败问题解决 Spring framework和Mybatis是两个非常popular的Java框架,前者是一个基于Java的开源框架,提供了一个通用的编程模型和配置机制,可以帮助开发者快速开发企业级应用程序...
在Spring中,`PropertyPlaceholderConfigurer`是一个非常重要的类,它用于处理属性文件中的占位符,将它们替换为实际的值。这在配置管理中起到了关键作用,特别是在大型分布式系统中,动态配置管理变得尤为重要。...
PropertyPlaceholderConfigurer 是 Spring 框架中的一个类,用于读取.properties文件并将占位符${...}替换为实际的配置信息。 例如,下面是一个使用 PropertyPlaceholderConfigurer 实现占位符${...}替换的示例代码...
Spring框架中提供了属性占位符配置器(PropertyPlaceholderConfigurer),用于读取外部属性文件,并将其设置为Spring配置文件的数据。本文将详细介绍Spring实战之属性占位符配置器用法示例,结合实例形式分析了...
`org.springframework.beans.factory.config.PropertyPlaceholderConfigurer` 是Spring框架中的一个重要组件,主要负责处理配置文件中的占位符替换。这个类是Spring在初始化bean时用来解析和注入环境变量或系统属性...
在Spring框架中,`PropertyPlaceholderConfigurer`是一种特殊的Bean,它被用来处理Spring配置文件中的占位符(placeholder),并将它们替换为具体的值。这些值通常来自外部的属性文件,如`.properties`或`.xml`等。...
Spring允许我们在配置文件中使用 `${...}` 来引用占位符,然后通过PropertyPlaceholderConfigurer 或者 @Value 注解来解析这些占位符,并在运行时替换为实际值。 例如,如果你有一个名为 `application.properties` ...
在Spring框架中,Bean的配置与管理是其核心功能之一,而通过`PropertyPlaceholderConfigurer`进行属性占位符的配置则是实现动态配置的关键技术。本文将深入解析如何利用`PropertyPlaceholderConfigurer`进行bean配置...
在Spring 3.1之前,占位符处理主要由`PropertyPlaceholderConfigurer`完成,而在3.1及以后版本,这个功能被`PropertySourcesPlaceholderConfigurer`和`EmbeddedValueResolver`接口接管,使得处理更加灵活和高效。...
`PropertyPlaceholderConfigurer`允许我们在XML配置文件中使用 `${property}` 形式的占位符,这些占位符的值会在运行时被VM参数或系统属性替换。 例如,我们可以在XML配置中这样使用: ```xml ...
1. `PropertyPlaceholderConfigurer`: 这个类可以解析包含占位符(如`${property}`)的bean定义,并替换为属性文件中的相应值。我们可以通过`locations`属性指定一个或多个属性文件的位置,Spring会在启动时加载这些...
- **PropertyPlaceholderConfigurer** 和 **PropertyOverrideConfigurer**:用于在运行时动态替换Bean配置中的占位符。 ### 结论 Spring框架以其强大的功能和灵活性,成为Java企业级应用开发的首选框架之一。通过...
这些信息通常存储在`.properties`文件中,并通过占位符`${}`引用到Spring配置文件中。然而,对于敏感信息,如密码、API密钥等,直接明文存储在属性文件中存在安全风险。为了保护这些数据,我们需要采取加密措施。 ...
Spring框架允许使用`PropertyPlaceholderConfigurer`来替换配置文件中的占位符,例如`${database.url}`,这样可以实现环境间的配置隔离,方便在开发、测试和生产环境之间切换。 3. `applicationContext.xml`:这是...
- Spring 2.0引入了`PropertyPlaceholderConfigurer`,用于处理配置文件中的占位符,例如`${property_name}`。它会查找指定的属性源(如`application.properties`),并替换这些占位符。 - `...
- 在"beans"包中,`org.springframework.beans.factory.config`包下的`PropertyPlaceholderConfigurer`类用于处理占位符替换,实现环境变量或属性文件的值注入到Bean的属性中。 3. **Bean的生命周期管理** - ...
`PropertyPlaceholderConfigurer`是一个BeanFactoryPostprocessor,用于在运行时替换配置文件中的占位符。 ##### 3.8.2 PropertyOverrideConfigurer `PropertyOverrideConfigurer`也是BeanFactoryPostprocessor的一...
Spring 2.0引入了`PropertyPlaceholderConfigurer`类,它是一个Bean工厂后处理器,负责在Bean定义中替换以`${...}`形式的占位符为实际的属性值。这些属性通常来自一个或多个`.properties`文件,可以是classpath下的...