完整的application.xml

xml 复制代码
<!-- 资源文件配置 -->
    <beans profile="dev">
        <bean class="com.ningpai.util.CustomPropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:/com/ningpai/web/config/dev/jdbc.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/es-hosts.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/redis.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/amq.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/config.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/kaQuan.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/zjlogin.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/kuaidi100.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/resource.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/czb.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/hzb.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/jlPay.properties</value>
                </list>
            </property>
        </bean>
    </beans>
java 复制代码
package com.ningpai.util;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * Created by Intellij Idea
 *
 * @auth hangzhou.team.rmitec
 * @company shanghai ruimin internet technology co.ltd
 * @date 2017/12/12
 */
public class CustomPropertyPlaceholderConfigurer extends org.springframework.beans.factory.config.PropertyPlaceholderConfigurer {

	private static Map<String, String> ctxPropertiesMap = new HashMap<String, String>();

	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess,Properties props) throws BeansException {
		super.processProperties(beanFactoryToProcess, props);
		for (Object key : props.keySet()) {
			String keyStr = key.toString();
			String value = props.getProperty(keyStr);
			ctxPropertiesMap.put(keyStr, value);
		}
	}

	/**
	 * 读取配置
	 *
	 * @param name
	 * @return
	 */
	public static String getProperty(String name) {
		return ctxPropertiesMap.get(name);
	}
}

完整的application.xml

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:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xmlns:redisson="http://redisson.org/schema/redisson"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
						http://www.springframework.org/schema/context 
						http://www.springframework.org/schema/context/spring-context-4.0.xsd
						http://www.springframework.org/schema/aop 
						http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
						http://www.springframework.org/schema/tx 
						http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
						http://www.springframework.org/schema/task  
						http://www.springframework.org/schema/task/spring-task-4.0.xsd
                        http://redisson.org/schema/redisson
                        http://redisson.org/schema/redisson/redisson.xsd
						">

	<import resource="spring-jcaptcha.xml" />
    <import resource="spring-plugin.xml" />
    <!--创建一个Spring Bean的名称springSessionRepositoryFilter实现过滤器。
筛选器负责将HttpSession实现替换为Spring会话支持。在这个实例中,Spring会话得到了Redis的支持。-->
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <property name="maxInactiveIntervalInSeconds" value="604800"/>
    </bean>
    <bean class="org.springframework.session.web.http.DefaultCookieSerializer">
        <property name="cookieName" value="JSESSIONID"/>
    </bean>
    <!--创建了一个RedisConnectionFactory,它将Spring会话连接到Redis服务器。我们配置连接到默认端口(6379)上的本地主机!-->
<!--    <bean class="org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory"/>-->

    <!--<osgi:reference  id="dataSource" interface="javax.sql.DataSource" bean-name="dataSource"/>-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          init-method="init" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <!-- data source configuration -->
        <property name="initialSize" value="50" /><!-- initial connections -->
        <property name="maxActive" value="200" /><!-- MAX connections -->
        <property name="maxIdle" value="50" /><!-- MAX idle connections -->
        <property name="minIdle" value="10" /><!-- MIN idle connections -->
        <!-- 处理mysql 8小时自动断开连接的问题 -->
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="true" />
        <property name="testOnReturn" value="false" />
        <property name="validationQuery" value="select 1" />
        <property name="validationQueryTimeout" value="15" />
        <property name="connectionInitSqls" value="set names utf8mb4;"/>
        <property name="timeBetweenEvictionRunsMillis" value="20000" />
        <property name="numTestsPerEvictionRun" value="100" />
        <!--属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:
                监控统计用的filter:stat
                日志用的filter:log4j
               防御SQL注入的filter:wall -->
        <property name="filters" value="${druid.filters}" />
    </bean>
    <!--事务相关控制-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 事务传播特性 -->
    <bean id="txDefinitionNew" class="org.springframework.transaction.support.DefaultTransactionDefinition">
        <property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW" />
        <property name="isolationLevel" value="2"></property>
    </bean>
    <context:component-scan  base-package="com.ningpai,com.qianmi,com.zjfae"/>
    <!--启动注解 @Transactional -->
    <tx:annotation-driven/>
	<!--
	<tx:advice id="userTxAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>
        </tx:attributes>
    </tx:advice>

    <aop:config>
        <aop:pointcut id="pc" expression="execution(* com.ningpai.web.impl.*.*(..)) " />
        		把事务控制在Business层
        <aop:advisor pointcut-ref="pc" advice-ref="userTxAdvice" />
    </aop:config>
  	-->
    <!-- MyBatis sqlSessionFactory 配置 mybatis-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation"
        	value="classpath:/com/ningpai/web/mybatis/SqlMapConfig.xml" />
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations">
            <array>
                <value>classpath*:com/qianmi/*/mapper/**/*.xml</value>
                <value>classpath*:com/ningpai/mybatis/mapper/DepositInfoMapper.xml</value>
                <value>classpath*:com/ningpai/mybatis/mapper/TradeInfoMapper.xml</value>
            </array>
        </property>
    </bean>
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory" />
    </bean>
    <!-- 设置字段内容长度,这里不做限定   -->
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />

    <!--esClientManager,设置为单例-->
    <bean id="esClientManager" class="com.ningpai.searchplatform.client.ESClientManager" scope="singleton">
        <constructor-arg index="0" type="java.lang.String">
            <value>${es.hosts}</value>
        </constructor-arg>
        <constructor-arg index="1" type="java.lang.String" value="${es.cluster.name}"/>
    </bean>

    <!-- 线程池 -->
    <!--spring线程池-->
    <bean id="threadPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <!--核心线程数-->
        <property name="corePoolSize" value="20"/>
        <!--最大线程数-->
        <property name="maxPoolSize" value="50"/>
        <!--队列最大长度-->
        <property name="queueCapacity" value="200"/>
        <!--线程池维护线程所允许的空闲时间-->
        <property name="keepAliveSeconds" value="300"/>
        <!--程序关闭时等待线程执行完毕-->
        <property name="waitForTasksToCompleteOnShutdown" value="true"/>
    </bean>

    <task:scheduled-tasks>
		<task:scheduled ref="RefundmentUtil" method="service" cron="0 0 12 * * ?" />
	</task:scheduled-tasks>

    <bean id="redisAdapter" class="com.ningpai.redis.RedisAdapter" scope="singleton"></bean>

    <bean id="redisProductCache" class="com.zjfae.goods.redis.RedisProductCache" scope="singleton"></bean>

    <bean id="redisMarketingCache" class="com.qianmi.marketing.redis.RedisMarketingCache" scope="singleton"></bean>

    <bean id="redisTopicCache" class="com.zjfae.topic.redis.RedisTopicCache" scope="singleton"></bean>

		  <bean id="SpringApplicationContext" class="com.ningpai.common.util.ApplicationContextHelper"></bean>


     <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
         <property name="maxIdle" value="${redis.maxIdle}" />
         <property name="maxTotal" value="${redis.maxActive}" />
         <property name="maxWaitMillis" value="${redis.maxWait}" />
         <property name="testOnBorrow" value="${redis.testOnBorrow}" />
     </bean>

     <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
         p:host-name="${redis.host}" p:port="${redis.port}"  p:database="${redis.dbIndex}"  p:pool-config-ref="poolConfig"/>

     <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
         <property name="connectionFactory"   ref="connectionFactory" />
     </bean>

    <!--redission 相关配置 请勿改动 -->
    <redisson:client id="redissonClient">
        <redisson:single-server address="redis://${redis.host}:${redis.port}" />
    </redisson:client>

     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
     </bean>

        <!--wxClientCredential-->
        <bean id="wxClientCredential" class="com.ningpai.m.weixin.util.WxClientCredential" scope="singleton" />

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ningpai.deposit.mapper,
        com.qianmi.marketing.dao,
        com.ningpai.marketing.dao.point,
        com.qianmi.coupon.mapper,
        com.qianmi.couponGroup.dao,
        com.qianmi.couponRedeem.dao,
        com.qianmi.newCustomerConfig.dao,
        com.qianmi.receive.dao,
        com.qianmi.promotioner.dao,
        com.ningpai.report.dao,
        com.ningpai.dict.dao,
        com.ningpai.commentResources.dao,
        com.ningpai.customer.dao.balance,
        com.ningpai.customer.dao.channelCustomerInfo,
        com.ningpai.customermerge.dao,
        com.ningpai.customerOption.dao,
        com.ningpai.privacyAgreement.dao,
        com.ningpai.system.dao.weixin,
        com.ningpai.system.dao.channelSet,
        com.ningpai.system.dao.outlet,
        com.ningpai.system.dao.common,
        com.zjfae.goods.dao,
        com.qianmi.site.common.dao,
        com.qianmi.marketing.groupon.dao,
        com.qianmi.invoice.dao,
        com.zjfae.flow.dao,
        com.zjfae.common.dao,
        com.zjfae.strategy.dao,
        com.zjfae.hop.dao,
        com.zjfae.jushuitan.dao,
        com.zjfae.nuonuo.dao,
        com.zjfae.report.dao,
        com.zjfae.share.dao,
        com.zjfae.goods.dao,
        com.zjfae.topic.dao,
        com.zjfae.order.dao
        com.ningpai.system.trans.dao,
        com.zjfae.white.dao,
        com.zjfae.vending.dao,
        com.ningpai.goods.dao.unexpress,
        com.ningpai.customer.dao.zjfae,
        com.ningpai.customer.dao.shareApply,
        com.zjfae.pay.dao,
        com.zjfae.page.dao,
        com.zjfae.domain.dao,
        com.zjfae.wxlogistics.dao,
        com.zjfae.log.dao,
        com.ningpai.goods.dao.erp,
        com.ningpai.marketing.dao.receiveRecord"/>

    </bean>
    <import resource="classpath*:spring-amq.xml"/>
    <import resource="classpath*:spring-promotioner.xml"/>

    <!-- 资源文件配置 -->
    <beans profile="dev">
        <bean class="com.ningpai.util.CustomPropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:/com/ningpai/web/config/dev/jdbc.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/es-hosts.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/redis.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/amq.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/config.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/kaQuan.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/zjlogin.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/kuaidi100.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/resource.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/czb.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/hzb.properties</value>
                    <value>classpath:/com/ningpai/web/config/dev/jlPay.properties</value>
                </list>
            </property>
        </bean>
    </beans>

    <beans profile="test">
        <bean class="com.ningpai.util.CustomPropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:/com/ningpai/web/config/test/jdbc.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/es-hosts.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/redis.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/amq.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/config.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/kaQuan.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/zjlogin.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/kuaidi100.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/resource.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/czb.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/hzb.properties</value>
                    <value>classpath:/com/ningpai/web/config/test/jlPay.properties</value>
                </list>
            </property>
        </bean>
    </beans>

    <beans profile="uat">
        <bean class="com.ningpai.util.CustomPropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:/com/ningpai/web/config/uat/jdbc.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/es-hosts.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/redis.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/amq.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/config.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/kaQuan.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/zjlogin.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/kuaidi100.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/resource.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/czb.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/hzb.properties</value>
                    <value>classpath:/com/ningpai/web/config/uat/jlPay.properties</value>
                </list>
            </property>
        </bean>
    </beans>

    <beans profile="prd">
        <bean class="com.ningpai.util.CustomPropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>classpath:/com/ningpai/web/config/prd/jdbc.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/es-hosts.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/redis.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/amq.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/config.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/kaQuan.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/zjlogin.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/kuaidi100.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/resource.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/czb.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/hzb.properties</value>
                    <value>classpath:/com/ningpai/web/config/prd/jlPay.properties</value>
                </list>
            </property>
        </bean>
    </beans>
</beans>
相关推荐
Yan.love几秒前
开发场景中Java 集合的最佳选择
java·数据结构·链表
椰椰椰耶3 分钟前
【文档搜索引擎】搜索模块的完整实现
java·搜索引擎
大G哥3 分钟前
java提高正则处理效率
java·开发语言
智慧老师34 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm36 分钟前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm101341 小时前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob2 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13142 小时前
常用的缓存技术都有哪些
java
AiFlutter2 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A3 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea