PropertyPlaceholderConfigurer详解2
来源:互联网 发布:数据库开发师工资 编辑:程序博客网 时间:2024/04/27 20:26
- 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,则需设置为true3.譬如,jdbc.properties的内容为:jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost/mysqldb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=round;jdbc.username=rootjdbc.password=1234564.那么在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中定义的工具。Java代码<!-- 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.propertiesjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/数据库名jdbc.username=数据库用户名jdbc.password=数据库密码hibernate.dialect=org.hibernate.dialect.MySQLDialect(方言.这里是MySql)
0 0
- PropertyPlaceholderConfigurer详解2
- PropertyPlaceholderConfigurer的用法详解
- PropertyPlaceholderConfigurer
- PropertyPlaceholderConfigurer
- PropertyPlaceholderConfigurer
- propertyplaceholderconfigurer
- PropertyPlaceholderConfigurer
- PropertyPlaceholderConfigurer
- PropertyPlaceholderConfigurer
- PropertyPlaceholderConfigurer
- 使用PropertyPlaceholderConfigurer读取.properties文件(2)-处理加密属性
- Spring--PropertyPlaceholderConfigurer
- spring propertyplaceholderconfigurer
- Spring PropertyPlaceholderConfigurer
- spring PropertyPlaceholderConfigurer
- spring propertyplaceholderconfigurer
- PropertyPlaceholderConfigurer配置
- PropertyPlaceholderConfigurer配置
- 检测字符串中的是否包含除中英数字的字符(中文,英文)
- 关于多核与单核、并行与并发
- edittext SearchView 失去焦点问题
- linux命令十:vi
- iOS#define和static const
- PropertyPlaceholderConfigurer详解2
- python nltk自然语言处理学习笔记1
- centos7 改网卡名字
- 08-排序3. Talent and Virtue (25)
- SDK更新国内镜像
- Android使用Handler造成的内存泄露问题的解决
- tar压缩解压缩命令详解
- Spring.net之Asp.net mvc配置
- linux下tomcat启动时,项目部署三次