spring配置檔案中分別使用多個properties檔案
在使用spring時,有時候需要為了模組配置方便有時候需要針對不同的模組建立不同的applicationContext的配置檔案,然後在對應模組的配置檔案中對相應的模組進行單獨配置。
1、載入不同模組的配置檔案
首先載入不同的配置檔案用於針對不同的模組配置:如
applicationContext-db.xml 用於資料庫相關的配置
applicationContext-interceptors.xml 用於攔截器相關的配置
applicationContext-memcached.xml 用於memcached快取相關的配置
之後在web.xml指定新增所有指定字首的配置,如下指定載入所有“applicationContext-”字首的配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
2、載入使用它不同的properties檔案
不同配置檔案中載入不同的屬性配置檔案並屬性值,如
applicationContext-db.xml 中載入jdbc.properties屬性配置用於獲取jdbc的相關配置資訊。
applicationContext-memcached.xml 中載入memcached.properties的屬性檔案用於獲取memcached快取的相關配置資訊。
實現上主要是使用spring提供的org.springframework.beans.factory.config.PropertyPlaceholderConfigurer bean來在不同的xml配置中載入不同的屬性配置檔案,否則直接使用property-placeholder載入時第二個配置檔案無法成功載入,xml無法獲取到相關的配置。spring載入屬性檔案方法如下:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
如下為applicationContext-db.xml中的完整配置,applicationContext-memcached.xml中的配指定不哦那個的classpath為不同的屬性配置檔案即可:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 載入資料庫屬性配置檔案 -->
<!-- <context:property-placeholder location="classpath:jdbc.properties" /> -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
<!-- dataSource configuration -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="100" />
<property name="acquireIncrement" value="3" />
<property name="maxIdleTime" value="60" />
<property name="checkoutTimeout" value="18000" />
<property name="idleConnectionTestPeriod" value="180" />
</bean>
<!-- sessionFactory configuration -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
<!-- 自動掃描註解方式配置的hibernate類檔案 -->
<property name="packagesToScan">
<list>
<!-- Add model package to here. -->
<value>api.landsem.db.model</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=${hibernate.dialect}
hibernate.query.substitutions=${hibernate.query.substitutions}
hibernate.cache.provider_class=${hibernate.cache.provider_class}
hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto}
hibernate.show_sql=${hibernate.show_sql}
</value>
</property>
</bean>
<bean id="passwordEncoder"
class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" />
<bean id="saltSource"
class="org.springframework.security.authentication.dao.ReflectionSaltSource">
<property name="userPropertyToUse" value="salt" />
</bean>
<!-- ==============add db dao package to here===================== -->
<context:component-scan base-package="api.landsem.db.dao.impl" />
<!-- ======================================Transactional configuration============================================= -->
<!-- Enable @Transactional support -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 配置事務管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- ===============Add db service package to here=================== -->
<context:component-scan base-package="api.landsem.db.service.impl" />
<!-- database handler. -->
<context:component-scan base-package="api.landsem.db.handler.impl" />
</beans>
相關文章
- spring註解中使用properties檔案Spring
- Spring多資原始檔properties的配置Spring
- 【SSM框架整合】專案xml檔案、properties等檔案的配置SSM框架XML
- log4j.properties 配置檔案
- java中讀取.properties配置檔案Java
- springboot基於properties檔案型別安全配置Spring Boot型別
- spring boot更改配置檔案 application.properties的位置Spring BootAPP
- spring 配置多個資料來源的檔案Spring
- 03.MyBatis學習-----全域性配置檔案_properties_引入外部配置檔案MyBatis
- Junit、Assert、內省、Properties類與配置檔案的使用
- WebLogic NodeManager 配置檔案nodemanager.propertiesWeb
- Spring中注入List,Set,Map,Properties的xml檔案配置方法SpringXML
- [XML與properties檔案]XML
- Properties屬性檔案
- springboot 配置檔案 .properties和.yml的寫法區別Spring Boot
- java進階(36)--IO和Properties聯合使用(配置檔案)Java
- Spring Boot、Nacos配置檔案properties、yml、yaml的優先順序Spring BootYAML
- Java讀取properties配置檔案工具包Java
- Struts2的properties配置檔案詳解
- openresty/nginx配置多個conf檔案RESTNginx
- Spring Boot 配置檔案Spring Boot
- Spring檔案最全配置Spring
- java Spring讀取properties檔案的注意點JavaSpring
- Spring用程式碼來讀取properties檔案Spring
- Spring載入配置檔案propertoies中util:properties和context:property-placeholder區別SpringContext
- properties檔案載入器
- java讀取properties檔案Java
- Spring Boot 框架中配置檔案 application.properties 當中的所有配置大全Spring Boot框架APP
- idea配置檔案.properties中文亂碼顯示????Idea
- Spring零配置檔案專案搭建Spring
- Spring Boot @PropertySource 載入指定配置檔案、@ImportResource 匯入Spring 配置檔案Spring BootImport
- SpringBoot配置檔案使用yml格式時報錯,使用properties格式時正常Spring Boot
- Spring boot 讀取properties檔案的四種方式Spring Boot
- 配置檔案讀取——MySQL 多個連線MySql
- rabbitMQ-Spring配置檔案MQSpring
- spring 配置檔案刨析Spring
- Spring 配置檔案詳解Spring
- spring配置檔案解釋Spring