<!-- 激活组件扫描功能,扫描aop的相关组件组件 --> <context:component-scan base-package="com.yingjun.ssm.aop"/> <!-- 启动对@AspectJ注解的支持 --> <aop:aspectj-autoproxy proxy-target-class="true" /> <!--简化配置: 1、自动注册DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter 2、提供一系列:数据绑定,数字和日期的format,@NumberFormat,@DataTimeFormat,xml,json默认读写支持 --> <mvc:annotation-driven/> <!--静态资源默认servlet配置 1、加入对静态资源的处理:js,css,gif,png 2、允许使用"/"做整体映射 --> <mvc:default-servlet-handler/> <!--配置JSP 显示ViewResolver--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!--扫描web相关的controller--> <context:component-scan base-package="com.yingjun.ssm.web"/> <!--全局异常捕捉 --> <bean class="com.yingjun.ssm.exception.GlobalExceptionResolver" />
spring-dao:
<!--配置整合mybatis过程--> <!--1、配置数据库相关参数--> <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/> <!--2.数据源druid --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" 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}" /> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="${druid.pool.size.init}" /> <property name="minIdle" value="${druid.pool.size.min}" /> <property name="maxActive" value="${druid.pool.size.max}" /> <!-- 配置监控统计拦截的filters,wall用于防止sql注入,stat用于统计分析 --> <property name="filters" value="wall,stat" /> </bean> <!--3、配置SqlSessionFactory对象--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--注入数据库连接池--> <property name="dataSource" ref="dataSource"/> <!--配置mybatis全局配置文件:mybatis-config.xml--> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!--扫描entity包,使用别名,多个用;隔开--> <property name="typeAliasesPackage" value="com.yingjun.ssm.entity"/> <!--扫描sql配置文件:mapper需要的xml文件--> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!--4、配置扫描Dao接口包,动态实现DAO接口,注入到spring容器--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--注入SqlSessionFactory--> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 给出需要扫描的Dao接口--> <property name="basePackage" value="com.yingjun.ssm.dao"/> </bean>
spring-service:
<!--扫描service包(包含子包)下所有使用注解的类型--> <context:component-scan base-package="com.yingjun.ssm.service"/> <!--配置事务管理器(mybatis采用的是JDBC的事务管理器)--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!--配置基于注解的声明式事务,默认使用注解来管理事务行为--> <tx:annotation-driven transaction-manager="transactionManager"/>
spring-redis:
<!-- 缓存的层级--> <context:component-scan base-package="com.yingjun.ssm.cache" /> <!-- 引入redis配置 --> <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/> <!-- Redis 配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="${redis.pool.maxTotal}" /> <property name="maxIdle" value="${redis.pool.maxIdle}" /> <property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" /> <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" /> </bean> <!-- JedisCluster 集群高可用配置 --> <!--<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster"> <constructor-arg index="0"> <set> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg index="0" value="${redis.ip1}" /> <constructor-arg index="1" value="${redis.port1}" type="int" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg index="0" value="${redis.ip2}" /> <constructor-arg index="1" value="${redis.port2}" type="int" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg index="0" value="${redis.ip3}" /> <constructor-arg index="1" value="${redis.port3}" type="int" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg index="0" value="${redis.ip4}" /> <constructor-arg index="1" value="${redis.port4}" type="int" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg index="0" value="${redis.ip5}" /> <constructor-arg index="1" value="${redis.port5}" type="int" /> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg index="0" value="${redis.ip6}" /> <constructor-arg index="1" value="${redis.port6}" type="int" /> </bean> </set> </constructor-arg> <constructor-arg index="1" value="2000" type="int"></constructor-arg> <constructor-arg index="2" value="100" type="int"></constructor-arg> <constructor-arg index="3" ref="jedisPoolConfig"></constructor-arg> </bean>--> <!--redis Sentinel主从高可用方案配置 --> <!-- <bean id="sentinelConfiguration" class="org.springframework.data.redis.connection.RedisSentinelConfiguration"> <property name="master"> <bean class="org.springframework.data.redis.connection.RedisNode"> <property name="name" value="master-1"></property> </bean> </property> <property name="sentinels"> <set> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="${sentinel1.ip}"></constructor-arg> <constructor-arg name="port" value="${sentinel1.port}"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="${sentinel2.ip}"></constructor-arg> <constructor-arg name="port" value="${sentinel2.port}"></constructor-arg> </bean> <bean class="org.springframework.data.redis.connection.RedisNode"> <constructor-arg name="host" value="${sentinel3.ip}"></constructor-arg> <constructor-arg name="port" value="${sentinel3.port}"></constructor-arg> </bean> </set> </property> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:use-pool="true"> <property name="password" value="${redis.pass}" /> <property name="poolConfig"> <ref bean="jedisPoolConfig" /> </property> <constructor-arg name="sentinelConfig" ref="sentinelConfiguration" /> </bean> --> <!-- redis单节点数据库连接配置 --> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${redis.ip}" /> <property name="port" value="${redis.port}" /> <property name="password" value="${redis.pass}" /> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> <!-- redisTemplate配置,redisTemplate是对Jedis的对redis操作的扩展,有更多的操作,封装使操作更便捷 --> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory" /> </bean>
spring-quartz:
<task:annotation-driven /> <context:annotation-config /> <context:component-scan base-package="com.yingjun.ssm.quartz"/>
mybatis-config:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--配置全局属性--> <settings> <!--使用jdbc的getGeneratekeys获取自增主键值--> <setting name="useGeneratedKeys" value="true"/> <!--使用列别名替换别名 默认true--> <setting name="useColumnLabel" value="true"/> <!--开启驼峰命名转换Table:create_time到 Entity(createTime)--> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
activiti.cfg.xml:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" /> <property name="jdbcDriver" value="org.h2.Driver" /> <property name="jdbcUsername" value="sa" /> <property name="jdbcPassword" value="" /> <property name="databaseSchemaUpdate" value="true" /> <property name="jobExecutorActivate" value="false" /> <property name="asyncExecutorEnabled" value="true" /> <property name="asyncExecutorActivate" value="false" /> <property name="mailServerHost" value="mail.my-corp.com" /> <property name="mailServerPort" value="5025" /> </bean> </beans>