配置了2个数据源
applicationContext-aop.xml
<?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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
</beans>
applicationContext-core.xml
<?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:context="http://www.springframework.org/schema/context"
xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="
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">
<context:annotation-config />
<context:component-scan base-package="com.neusoft.bhsms">
<context:exclude-filter type="regex" expression="com\.neusoft\.bhsms\.controller\.(controller|utils|commons)\.*"/>
</context:component-scan>
<!-- 属性文件配置管理 -->
<bean id="property" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:systemconfig/*.properties</value>
</list>
</property>
</bean>
<bean id="propertyConfig" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="properties" ref="property"></property>
</bean>
<bean id="propertyUtils" class="com.neusoft.bhsms.commons.PropertyConfigurer">
<property name="ctxProperties" ref="property"></property>
</bean>
<bean class="com.neusoft.bhsms.commons.SpringContext" />
</beans>
applicationContext-dao.xml
<?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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 数据库连接池配置 -->
<bean id="originDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 数据库基本信息配置:数据库驱动、url、用户名和密码 -->
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置初始化连接数量、最小空闲连接数、最大并发连接数 -->
<property name="initialSize" value="${druid.initialSize}" />
<property name="minIdle" value="${druid.minIdle}" />
<property name="maxActive" value="${druid.maxActive}" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="${druid.maxWait}" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
<!-- 用来检测连接是否有效的sql查询语句 -->
<property name="validationQuery" value="${druid.validationQuery}" />
<!-- 申请连接的时候检测 -->
<property name="testWhileIdle" value="${druid.testWhileIdle}" />
<!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 -->
<property name="testOnBorrow" value="${druid.testOnBorrow}" />
<!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能 -->
<property name="testOnReturn" value="${druid.testOnReturn}" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小(oracle使用) -->
<property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="${druid.maxPoolPreparedStatementPerConnectionSize}" />
<!-- 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall -->
<property name="filters" value="${druid.filters}" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<property name="targetDataSource" ref="originDataSource" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath*:sqlmapper/**/*.xml"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.neusoft.bhsms.dao" />
<property name="markerInterface" value="com.neusoft.bhsms.dao.IBaseDao" />
<!-- 配置多个数据源是使用 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id ="transactionManager" class= "org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name ="dataSource" ref="dataSource"></property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
applicationContext-dao_remote.xml
<?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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 数据库连接池配置 -->
<bean id="originDataSourceTwo" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 数据库基本信息配置:数据库驱动、url、用户名和密码 -->
<property name="driverClassName" value="${jdbc.remote.driverClassName}" />
<property name="url" value="${jdbc.remote.url}" />
<property name="username" value="${jdbc.remote.username}" />
<property name="password" value="${jdbc.remote.password}" />
<!-- 配置初始化连接数量、最小空闲连接数、最大并发连接数 -->
<property name="initialSize" value="${druid.initialSize}" />
<property name="minIdle" value="${druid.minIdle}" />
<property name="maxActive" value="${druid.maxActive}" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="${druid.maxWait}" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
<!-- 用来检测连接是否有效的sql查询语句 -->
<property name="validationQuery" value="${druid.validationQuery}" />
<!-- 申请连接的时候检测 -->
<property name="testWhileIdle" value="${druid.testWhileIdle}" />
<!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 -->
<property name="testOnBorrow" value="${druid.testOnBorrow}" />
<!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能 -->
<property name="testOnReturn" value="${druid.testOnReturn}" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小(oracle使用) -->
<property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="${druid.maxPoolPreparedStatementPerConnectionSize}" />
<!-- 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall -->
<property name="filters" value="${druid.filters}" />
</bean>
<bean id="dataSourceTwo" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<property name="targetDataSource" ref="originDataSourceTwo" />
</bean>
<bean id="sqlSessionFactoryTwo" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceTwo" />
<property name="mapperLocations" value="classpath*:sqlmapper/remote/**/*.xml"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.neusoft.bhsms.remote.dao" />
<property name="markerInterface" value="com.neusoft.bhsms.remote.dao.IBaseDao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryTwo"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManagerTwo" />
<bean id ="transactionManagerTwo" class= "org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name ="dataSource" ref="dataSourceTwo"></property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSourceTwo" />
</bean>
</beans>
servlet-mvc.xml
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/p
http://www.springframework.org/schema/p/">
<context:component-scan base-package="com.neusoft.bhsms.controller"></context:component-scan>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding"><value>utf-8</value></property>
<property name="maxUploadSize"><value>104857600</value></property>
<property name="maxInMemorySize"><value>4096</value></property>
</bean>
<!-- <bean id="initInterceptor" class="com.neusoft.bhsms.interceptor.InitializingInterceptor" />
--><!-- <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" /> -->
<mvc:interceptors>
<!-- <ref bean="localeResolver"/> -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<!-- 需排除拦截的地址-->
<mvc:exclude-mapping path="/login.do"/>
<mvc:exclude-mapping path="/getUser.do"/>
<bean class="com.neusoft.bhsms.interceptor.InitializingInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>
jdbc.properties
#数据库基本信息:驱动名称、连接url、用户名和密码
#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@25.30.9.168:1521:mega
#jdbc.username=guobiao
#jdbc.password=guobiao
#内置数据库,便于服务初始安装使用
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://10.10.120.5:3306/bhsms?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=
#内置数据库,便于服务初始安装使用
jdbc.remote.driverClassName=com.mysql.jdbc.Driver
jdbc.remote.url=jdbc:mysql://10.10.120.5:3306/remote?useUnicode=true&characterEncoding=UTF-8
jdbc.remote.username=root
jdbc.remote.password=
#内置数据库,便于服务初始安装使用
jdbc.postgres.driverClassName=org.postgresql.Driver
jdbc.postgres.url=jdbc:postgresql://10.10.120.71:5432/cmsdb
jdbc.postgres.username=postgres
jdbc.postgres.password=Hik12345
dialect=postgresql
#数据库连接池初始化连接数量、最小空闲连接数量、最大并发连接数量
druid.initialSize=30
druid.minIdle=30
druid.maxActive=500
#配置获取连接等待超时的时间
druid.maxWait=60000
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
druid.timeBetweenEvictionRunsMillis=60000
#配置一个连接在池中最小生存的时间,单位是毫秒
druid.minEvictableIdleTimeMillis=30000
#用来检测连接是否有效的查询sql语句
druid.validationQuery=SELECT 1 FROM DUAL
#申请连接的时候检测
druid.testWhileIdle=true
#申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能
druid.testOnBorrow=false
#归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能
druid.testOnReturn=false
#指定每个连接上PSCache的大小(Oracle使用)
druid.poolPreparedStatements=true
druid.maxPoolPreparedStatementPerConnectionSize=200
#属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall
druid.filters=wall
system.properties
#应用名称
app.name=滨海区综治融合平台
app.version=v1.0
#cookie有效时间(60*60*24=86400 1天)
cookie.maxAge=86400
#cookie的路径
cookie.path=/
#重点人员为主信息更新时间(60*1000 1分钟 毫秒为单位)
keyPerson.getTime=60000
log4j.properties
### set log levels ###
log4j.rootLogger=info,stdout
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c:%L - %m%n
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>BHSMS</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext-*.xml</param-value>
</context-param>
<filter>
<filter-name>bhsms-encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>bhsms-encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>bhsms-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/servlet-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>bhsms-mvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>10080</session-timeout>
</session-config>
</web-app>