| | |
| | | <?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" |
| | | xmlns:aop="http://www.springframework.org/schema/aop" |
| | | xmlns:context="http://www.springframework.org/schema/context" |
| | | xsi:schemaLocation="http://www.springframework.org/schema/beans |
| | | http://www.springframework.org/schema/beans/spring-beans.xsd |
| | | http://www.springframework.org/schema/tx |
| | | http://www.springframework.org/schema/tx/spring-tx.xsd |
| | | http://www.springframework.org/schema/aop |
| | | http://www.springframework.org/schema/aop/spring-aop.xsd |
| | | http://www.springframework.org/schema/context |
| | | http://www.springframework.org/schema/context/spring-context.xsd" |
| | | default-lazy-init="true" |
| | | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| | | xmlns:tx="http://www.springframework.org/schema/tx" |
| | | xmlns:aop="http://www.springframework.org/schema/aop" |
| | | xmlns:context="http://www.springframework.org/schema/context" |
| | | xsi:schemaLocation="http://www.springframework.org/schema/beans |
| | | http://www.springframework.org/schema/beans/spring-beans-4.2.xsd |
| | | http://www.springframework.org/schema/tx |
| | | http://www.springframework.org/schema/tx/spring-tx-4.2.xsd |
| | | http://www.springframework.org/schema/aop |
| | | http://www.springframework.org/schema/aop/spring-aop-4.2.xsd |
| | | http://www.springframework.org/schema/context |
| | | http://www.springframework.org/schema/context/spring-context-4.2.xsd" |
| | | default-lazy-init="true" |
| | | > |
| | | <description>Spring公共配置文件</description> |
| | | <context:component-scan base-package="com.yc"/> |
| | | <context:component-scan base-package="me.chanjar"/> |
| | | <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --> |
| | | <context:annotation-config/> |
| | | <import resource="spring-redis.xml"/> |
| | | <!-- |
| | | <context:property-placeholder location="classpath:jdbc.properties"/> |
| | | --> |
| | | |
| | | <description>Spring公共配置文件 </description> |
| | | <context:component-scan base-package="com.yc" /> |
| | | <context:component-scan base-package="me.chanjar" /> |
| | | <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --> |
| | | <context:annotation-config /> |
| | | |
| | | <!-- |
| | | <context:property-placeholder location="classpath:jdbc.properties"/> |
| | | --> |
| | | <!-- 数据源配置,使用应用c3po数据库连接池 --> |
| | | <!-- |
| | | <bean id="dataSource" |
| | | class="com.mchange.v2.c3p0.ComboPooledDataSource" |
| | | destroy-method="close"> <property name="driverClass" |
| | | value="${jdbc.driverClassName}"/> <property name="jdbcUrl" |
| | | value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> |
| | | <property name="password" value="${jdbc.password}"/> <property |
| | | name="initialPoolSize" value="${cop3.initialPoolSize}"/> <property |
| | | name="minPoolSize" value="${cop3.minPoolSize}"/> <property |
| | | name="maxPoolSize" value="${cop3.maxPoolSize}"/> <property |
| | | name="acquireIncrement" value="${cop3.acquireIncrement}"/> <property |
| | | name="maxIdleTime" value="${cop3.maxIdleTime}"/> <property |
| | | name="idleConnectionTestPeriod" |
| | | value="${cop3.idleConnectionTestPeriod}"/> <property |
| | | name="maxStatements" value="${cop3.maxStatements}"/> </bean> |
| | | --> |
| | | <!-- |
| | | dbcp连接池 <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}" /> <property name="maxActive" |
| | | value="${jdbc.maxActive}" /> <property name="maxIdle" |
| | | value="${jdbc.maxIdle}" /> <property name="maxWait" |
| | | value="${jdbc.maxWait}" /> <property name="defaultAutoCommit" |
| | | value="${jdbc.defaultAutoCommit}"/> <property name="removeAbandoned" |
| | | value="${jdbc.removeAbandoned}"/> <property |
| | | name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/> |
| | | <property name="logAbandoned" value="${jdbc.logAbandoned}"/> </bean> |
| | | --> |
| | | <!-- |
| | | ****************************代理connection用当前线程记录执行sql配置start********************************** |
| | | --> |
| | | <!--配置统一数据源,将来系统中使用的数据源将从他当中获取--> |
| | | <bean id="multiDataSource" class="com.yc.multiData.MultiDataSource"></bean> |
| | | <!--封装dataSource 对当前线程所执行的sql进行记录--> |
| | | <bean id="dataSource" class="com.yc.dataAccess.YCDataSource"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="multiDataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- |
| | | ****************************记录执行sql配置end********************************** |
| | | --> |
| | | <!-- |
| | | ****************************不使用代理connection(不记录执行sql配置start)********************************** |
| | | --> |
| | | <!-- |
| | | ****************************不记录执行sql配置end********************************** |
| | | --> |
| | | <!-- 配置defaultLobHandler --> |
| | | <!-- |
| | | ****************************代理connection用当前线程记录执行sql配置start********************************** |
| | | --> |
| | | <!--配置统一数据源,将来系统中使用的数据源将从他当中获取--> |
| | | <bean id="multiDataSource" class="com.yc.multiData.MultiDataSource"></bean> |
| | | <!--封装dataSource 对当前线程所执行的sql进行记录--> |
| | | <bean id="dataSource" class="com.yc.dataAccess.YCDataSource"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="multiDataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- |
| | | ****************************记录执行sql配置end********************************** |
| | | --> |
| | | <!-- |
| | | ****************************不使用代理connection(不记录执行sql配置start)********************************** |
| | | --> |
| | | <!-- |
| | | ****************************不记录执行sql配置end********************************** |
| | | --> |
| | | <!-- 配置defaultLobHandler --> |
| | | <bean id="defaultLobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" |
| | | lazy-init="true" /> |
| | | <!-- 基本的JDBC操作类,在server层直接引用就可以使用 --> |
| | | <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 提供用javaBean作为对象进行参数传递给jdbc使用,在server层直接引用就可以使用 --> |
| | | <bean id="simpleJdbcInsert" class="org.springframework.jdbc.core.simple.SimpleJdbcInsert"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 提供用命令参数进行参数传递给jdbc使用,在server层直接引用就可以使用 --> |
| | | <bean id="namedParameterJdbcTemplate" |
| | | class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 提供调用存储过程功能给jdbc使用,在server层直接引用就可以使用 --> |
| | | <bean id="simpleJdbcCall" class="org.springframework.jdbc.core.simple.SimpleJdbcCall"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!--19类型存储过程调用--> |
| | | <bean id="simpleJdbcCallByProc" class="org.springframework.jdbc.core.simple.SimpleJdbcCall"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <bean id="simpleJdbcCallShopping" class="org.springframework.jdbc.core.simple.SimpleJdbcCall" scope="prototype"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 事务管理 --> |
| | | <bean id="transactionManager" |
| | | class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> |
| | | <property name="dataSource"> |
| | | <ref bean="dataSource" /> |
| | | </property> |
| | | </bean> |
| | | <!-- 定义事务通知--> |
| | | <tx:advice id="txAdvice" transaction-manager="transactionManager"> |
| | | <tx:attributes> |
| | | <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="new*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="create*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="change*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="do*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="addErrorLog" propagation="NOT_SUPPORTED" /> |
| | | <tx:method name="excelRecord" propagation="NOT_SUPPORTED" /> |
| | | <tx:method name="*" propagation="SUPPORTS" read-only="true" /> |
| | | </tx:attributes> |
| | | </tx:advice> |
| | | <!-- 事物,日志(拦截service包的所有执行sql函数对执行sql报错的保存到数据库)AOP配置--> |
| | | <aop:config> |
| | | <aop:pointcut id="bizMethods" |
| | | expression="execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) " /> |
| | | <aop:pointcut id="logger" |
| | | expression="(execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) ) and !execution(* com.yc.service.log.ErrorLogImpl.*(..))" /> |
| | | <aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" /> |
| | | <aop:aspect id="loggerAspect" ref="genericLoggerBean"> |
| | | <aop:around pointcut-ref="logger" method="invoke" /> |
| | | </aop:aspect> |
| | | </aop:config> |
| | | <!-- 事物,日志AOP配置--> |
| | | <!-- 事物,不进行日志AOP配置--> |
| | | <!-- |
| | | <aop:config> <aop:pointcut id="bizMethods" expression="execution(* |
| | | com.yc.service..*.*(..))" /> <aop:advisor advice-ref="txAdvice" |
| | | pointcut-ref="bizMethods" /> </aop:config> |
| | | --> |
| | | <!-- 事物,不进行日志AOP配置--> |
| | | <bean id="genericLoggerBean" class="com.yc.log.ErrorLoggerBean"></bean> |
| | | <!-- 使用annotation定义事务 --> |
| | | <tx:annotation-driven /> |
| | | <!-- |
| | | ****************************国际化********************************** |
| | | --> |
| | | <!-- 这个 bean的id是规定死的,只能为messageSource --> |
| | | <bean id="messageSource" |
| | | class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> |
| | | <property name="basenames"> |
| | | <list> |
| | | <value>messageSource/messages</value> |
| | | </list> |
| | | </property> |
| | | </bean> |
| | | <!-- |
| | | ****************************国际化********************************** |
| | | --> |
| | | <!-- |
| | | ****************************检查空间 和 数据库文件 的调度计划start********************************** |
| | | --> |
| | | |
| | | |
| | | <bean id="spaceCheckJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> |
| | | <property name="jobClass"> |
| | | <value>com.yc.schedule.SpaceCheckQuartzJob |
| | | </value> |
| | | </property> |
| | | </bean> |
| | | <!-- 调度计划触发器 --> |
| | | <bean id="spaceCheckSimpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> |
| | | <property name="jobDetail"> |
| | | <ref bean="spaceCheckJobDetail" /> |
| | | </property> |
| | | <property name="startDelay"> |
| | | <value>50000</value> <!-- 启动服务器50秒后执行第一次 --> |
| | | </property> |
| | | <property name="repeatInterval"> |
| | | <value>86400000</value><!-- 每24小时后执行一次 --> |
| | | </property> |
| | | </bean> |
| | | <bean id="spaceCheckCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> |
| | | <property name="jobDetail"> |
| | | <ref bean="spaceCheckJobDetail" /> |
| | | </property> |
| | | <property name="cronExpression"> |
| | | <!-- 每天早上6点执行 --> |
| | | <value>0 0 6 * * ?</value> <!-- 1秒 2分钟 3小时 4月份中的日期 5月份 6星期中的日期 7年份 --> |
| | | </property> |
| | | </bean> |
| | | <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> |
| | | <property name="triggers"> |
| | | <list> |
| | | <ref bean="spaceCheckCronTrigger" /> |
| | | </list> |
| | | </property> |
| | | </bean> |
| | | |
| | | <!-- |
| | | ****************************检查空间 和 数据库文件 的调度计划end**********************************--> |
| | | |
| | | <!-- --> |
| | | <!--<!– 热更新 开始 –> --> |
| | | <!-- <bean id="chcpJobDetails" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.ionic.schedule.ChcpTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="jobDataAsMap"> --> |
| | | <!-- <dataResult> --> |
| | | <!-- <!– 非spring管理的service放到这里,就可以注入进去 –> --> |
| | | <!-- <description>jobDataAsMap</description> --> |
| | | <!-- <!– key 属性值,value 对应的bean –> --> |
| | | <!-- <entry key="DemoInfoImpl" value-ref="demo" /> --> |
| | | <!-- </dataResult> --> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- --> |
| | | <!-- <bean id="chcpSimpleTriggers" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="chcpJobDetails"/>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="startDelay">--> |
| | | <!-- <value>6000000000000</value> <!– 启动服务器1分钟后执行 –>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="repeatInterval">--> |
| | | <!-- <value>6000000000000</value> <!– 每1分钟执行一次 –>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- --> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="chcpSimpleTriggers" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- <!– 热更新 结束–> --> |
| | | |
| | | <!-- <!–--> |
| | | <!-- ****************************邮件 的调度计划开始**********************************–>--> |
| | | <!-- <!–邮件调度计划触发器 –> --> |
| | | <!-- <bean id="mailJobDetaily" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.action.mail.action.SendMail</value>--> |
| | | <!-- </property>--> |
| | | <!-- --> |
| | | <!-- <property name="jobDataAsMap"> --> |
| | | <!-- <dataResult> --> |
| | | <!-- <!– 非spring管理的service放到这里,就可以注入进去 –> --> |
| | | <!-- <description>jobDataAsMap</description> --> |
| | | <!-- <!– key 属性值,value 对应的bean –> --> |
| | | <!-- <entry key="OtherMailImpl" value-ref="OtherMailImpl" /> --> |
| | | <!-- </dataResult> --> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- <!– 启动服务设置触发邮件功能时间 –>--> |
| | | <!-- <bean id="mailSimpleTriggery" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="mailJobDetaily"/>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="startDelay">--> |
| | | <!-- <value>300000000</value> <!– 启动服务器2秒后执行第一次 –>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="repeatInterval">--> |
| | | <!-- <value>120000000</value><!– 每24小时后执行一次 86400000–>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="mailSimpleTriggery" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | |
| | | <!-- <!– ******************自动发送微信企业号消息 调度计划 start ************** –>--> |
| | | <!-- <bean id="sendWeiXinMsgJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.sdk.weixincp.action.SendWeiXinMsgTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <!– 调度计划触发器 –>--> |
| | | <!-- <bean id="sendWeiXinMsgTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="sendWeiXinMsgJobDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="startDelay">--> |
| | | <!-- <value>15000000000</value> <!– 启动服务器30秒后执行第一次 15000 –>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="repeatInterval">--> |
| | | <!-- <value>30000000000</value><!– 每30秒执行一次 30000 ,每天是 86400000 秒 –>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="sendWeiXinMsgTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- <!– ******************自动发送微信企业号消息 调度计划 end ************** –>--> |
| | | <!-- --> |
| | | <!-- <!– ******************自动发送微信公众号模板消息 调度计划 start ************** –>--> |
| | | <!-- <!– --> |
| | | <!-- <bean id="sendTemplateMsgJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.sdk.weixinmp.action.SendTemplateMsgTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean id="sendTemplateMsgTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="sendTemplateMsgJobDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="startDelay">--> |
| | | <!-- <value>15000</value> --> |
| | | <!-- </property>--> |
| | | <!-- <property name="repeatInterval">--> |
| | | <!-- <value>30000</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="sendTemplateMsgTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- –>--> |
| | | <!-- <!– ******************自动发送微信公众号模板消息 调度计划 end ************** –> --> |
| | | <!-- --> |
| | | <!-- --> |
| | | <!-- <!– ******************自动发送微信小程序模板消息 调度计划 start ************** –>--> |
| | | <!-- <!– --> |
| | | <!-- <bean id="sendMaTemplateMsgJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.sdk.miniapp.action.MaSendTemplateMsgTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean id="sendMaTemplateMsgTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="sendMaTemplateMsgJobDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="startDelay">--> |
| | | <!-- <value>15000</value> --> |
| | | <!-- </property>--> |
| | | <!-- <property name="repeatInterval">--> |
| | | <!-- <value>30000</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="sendMaTemplateMsgTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- –>--> |
| | | <!-- <!– ******************自动发送微信小程序模板消息 调度计划 end ************** –> --> |
| | | <!-- --> |
| | | <!-- <!– 每日检查用户密码是否过期 –>--> |
| | | <!-- <bean id="chcekPasswordHasExpiredTimerDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.sdk.password.action.ChcekPasswordHasExpiredTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean> --> |
| | | <!-- <bean id="chcekPasswordHasExpiredTimerTriggers" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="chcekPasswordHasExpiredTimerDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="cronExpression">--> |
| | | <!-- <!– 每天23点30执行 –>--> |
| | | <!-- <value>0 30 23 * * ?</value> <!– 1秒 2分钟 3小时 4月份中的日期 5月份 6星期中的日期 7年份 –>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="chcekPasswordHasExpiredTimerTriggers" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean> --> |
| | | <!-- <!– 结束每日检查用户密码是否过期 –>--> |
| | | |
| | | |
| | | <!-- <!– ******************每年度12月 1号, 10号,20号,24,25,30,31号 创建新的年度会计期间 start ************** –>--> |
| | | <!-- <bean id="createYearPeriodIdTimerDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.action.periodid.CreateYearPeriodIdTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <!– 调度计划触发器 –>--> |
| | | <!-- <bean id="createYearPeriodIdTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="createYearPeriodIdTimerDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="cronExpression">--> |
| | | <!-- <!– 每年度12月 1号, 10号,20号,30,31号 22点10执行 –>--> |
| | | <!-- <value>0 10 22 1,10,20,24,25,30,31 12 ? *</value> <!– 0 10 22 1,10,20,24,25,30,31 12 ? * , 1秒 2分钟 3小时 4月份中的日期 5月份 6星期中的日期 7年份 –>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="createYearPeriodIdTimerTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- <!– ******************每年度12月 1号, 10号,20号,30,31号 创建新的年度会计期间 end ************** –>--> |
| | | |
| | | <!-- <!– ******************每月 24号,25号,27号,28号,30,31号系统自动尝试打开下个月的会计期间 start ************** –>--> |
| | | <!-- <bean id="openPeriodIdTimerDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.action.periodid.OpenPeriodIdTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <!– 调度计划触发器 –>--> |
| | | <!-- <bean id="openPeriodIdTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="openPeriodIdTimerDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="cronExpression">--> |
| | | <!-- <!– 每月 24,25, 26,28,30,31号 23点15执行 –>--> |
| | | <!-- <value>0 15 23 24,25,27,28,30,31 * ? *</value> <!– 0 15 23 24,25,27,28,30,31 * ? * 1秒 2分钟 3小时 4月份中的日期 5月份 6星期中的日期 7年份 –>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="openPeriodIdTimerTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- <!– ******************每月 24号,25号,27号,28号,30,31号系统自动尝试打开下个月的会计期间 end ************** –>--> |
| | | <!-- --> |
| | | <!-- --> |
| | | <!-- <!– ******************自动拉取直播房间信息 调度计划 start, 每天8:00-23:00 ,每20秒执行一次, " 10/20 * 8-23 * * ? * ", 1秒 2分钟 3小时 4月份中的日期 5月份 6星期中的日期 7年份 **************–> --> |
| | | <!-- <bean id="refreshLiveRoomJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.sdk.miniapp.action.MaSyncLiveRoomTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | |
| | | <!-- <bean id="refreshLiveRoomTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="refreshLiveRoomJobDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="cronExpression">--> |
| | | <!-- <value>10/200 * 8-23 * * ? *</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="refreshLiveRoomTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- <!– ******************自动拉取直播房间信息 调度计划 end ************** –> --> |
| | | <!-- --> |
| | | <!-- <!– ******************每晚更新已经过期的数据源 调度计划 start, 每天23:00执行一次, " 0 0 23 * * ? * ", 1秒 2分钟 3小时 4月份中的日期 5月份 6星期中的日期 7年份 **************–> --> |
| | | <!-- <bean id="refreshDataSourceJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.sdk.shopping.action.MaintainceTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | |
| | | <!-- <bean id="refreshDataSourceTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="refreshDataSourceJobDetail" />--> |
| | | <!-- </property>--> |
| | | <!-- <property name="cronExpression">--> |
| | | <!-- <value>0 15 11 * * ? *</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="refreshDataSourceTrigger" />--> |
| | | <!-- </list>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- <!– ******************每晚更新已经过期的数据源 调度计划 end ************** –> --> |
| | | <!-- --> |
| | | <!-- --> |
| | | <!-- <!–邮件收取触发器--> |
| | | <!-- <bean id="spaceMailDetails" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">--> |
| | | <!-- <property name="jobClass">--> |
| | | <!-- <value>com.yc.schedule.EmailReceiverTimer</value>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="jobDataAsMap"> --> |
| | | <!-- <dataResult>--> |
| | | <!-- --> |
| | | <!-- <description>jobDataAsMap</description> --> |
| | | <!-- --> |
| | | <!-- <entry key="OtherMailImpl" value-ref="OtherMailImpl" /> --> |
| | | <!-- <entry key="MailInfoImpl" value-ref="MailInfoImpl" /> --> |
| | | <!-- <entry key="DemoInfoImpl" value-ref="demo" /> --> |
| | | <!-- </dataResult> --> |
| | | <!-- </property> --> |
| | | <!-- --> |
| | | <!-- </bean>--> |
| | | |
| | | <!-- <bean id="spaceCheckMaileTriggers" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">--> |
| | | <!-- <property name="jobDetail">--> |
| | | <!-- <ref bean="spaceMailDetails"/>--> |
| | | <!-- </property>--> |
| | | <!-- <property name="startDelay">--> |
| | | <!-- <value>6000</value> --> |
| | | <!-- </property>--> |
| | | <!-- <property name="repeatInterval">--> |
| | | <!-- <value>108000000</value>--> |
| | | <!-- </property>--> |
| | | <!-- </bean>--> |
| | | <!-- --> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers">--> |
| | | <!-- <list>--> |
| | | <!-- <ref bean="spaceCheckMaileTriggers" />--> |
| | | <!-- </list>--> |
| | | <!-- </property> --> |
| | | <!-- </bean>--> |
| | | <!-- –>--> |
| | | <!-- --> |
| | | <!-- <!– --> |
| | | <!-- <bean id="scheduleReportTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"> --> |
| | | <!-- <property name="timerTask"> <ref bean="SendSmsTimer"/> </property> --> |
| | | <!-- <property name="period"> --> |
| | | <!-- <value>6000</value> --> |
| | | <!-- </property> --> |
| | | <!-- </bean> --> |
| | | <!-- <bean class="org.springframework.scheduling.timer.TimerFactoryFactoryBean"> --> |
| | | <!-- <property name="scheduledTimerTasks"> --> |
| | | <!-- <list><ref bean="scheduleReportTask"/></list> --> |
| | | <!-- </property> --> |
| | | <!-- </bean> --> |
| | | <!-- –>--> |
| | | <!-- <!– --> |
| | | <!-- <bean id="SmsSimpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean" >--> |
| | | <!-- <property name="jobDetail"> <ref bean="smsTaskJob" /> </property>--> |
| | | <!-- <property name="repeatInterval"> <value>60000</value> </property>--> |
| | | <!-- </bean>--> |
| | | <!-- --> |
| | | <!-- <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">--> |
| | | <!-- <property name="triggers"> <list> <ref bean="SmsSimpleTrigger" /></list> </property>--> |
| | | <!-- </bean>--> |
| | | <!-- –> --> |
| | | |
| | | |
| | | <!-- 重新生成功能号 --> |
| | | <bean id="formidVersion" class="com.yc.action.build.FormidVersion"> |
| | | <property name="formidConfig"> |
| | | <value>classpath:FormidVersion.xml</value> |
| | | </property> |
| | | </bean> |
| | | |
| | | <import resource="spring-redis.xml"/> |
| | | </beans> |
| | | lazy-init="true"/> |
| | | <!-- 基本的JDBC操作类,在server层直接引用就可以使用 --> |
| | | <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 提供用javaBean作为对象进行参数传递给jdbc使用,在server层直接引用就可以使用 --> |
| | | <bean id="simpleJdbcInsert" class="org.springframework.jdbc.core.simple.SimpleJdbcInsert"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 提供用命令参数进行参数传递给jdbc使用,在server层直接引用就可以使用 --> |
| | | <bean id="namedParameterJdbcTemplate" |
| | | class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 提供调用存储过程功能给jdbc使用,在server层直接引用就可以使用 --> |
| | | <bean id="simpleJdbcCall" class="org.springframework.jdbc.core.simple.SimpleJdbcCall"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!--19类型存储过程调用--> |
| | | <bean id="simpleJdbcCallByProc" class="org.springframework.jdbc.core.simple.SimpleJdbcCall"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <bean id="simpleJdbcCallShopping" class="org.springframework.jdbc.core.simple.SimpleJdbcCall" scope="prototype"> |
| | | <constructor-arg name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </constructor-arg> |
| | | </bean> |
| | | <!-- 事务管理 --> |
| | | <bean id="transactionManager" |
| | | class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> |
| | | <property name="dataSource"> |
| | | <ref bean="dataSource"/> |
| | | </property> |
| | | </bean> |
| | | <!-- 定义事务通知--> |
| | | <tx:advice id="txAdvice" transaction-manager="transactionManager"> |
| | | <tx:attributes> |
| | | <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="new*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="create*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="change*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="do*" propagation="REQUIRED" rollback-for="Exception"/> |
| | | <tx:method name="addErrorLog" propagation="NOT_SUPPORTED"/> |
| | | <tx:method name="excelRecord" propagation="NOT_SUPPORTED"/> |
| | | <tx:method name="*" propagation="SUPPORTS" read-only="true"/> |
| | | </tx:attributes> |
| | | </tx:advice> |
| | | <!-- 事物,日志(拦截service包的所有执行sql函数对执行sql报错的保存到数据库)AOP配置--> |
| | | <aop:config> |
| | | <aop:pointcut id="bizMethods" |
| | | expression="execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) or execution(* com.yc.MaintenanceFee.service..*.*(..))"/> |
| | | <aop:pointcut id="logger" |
| | | expression="(execution(* com.yc.service..*.*(..)) or execution(* com.yc.sdk.shopping.service..*.*(..)) or execution(* com.yc.sdk.weixincp.service..*.*(..)) or execution(* com.yc.sdk.weixinmp.service..*.*(..)) or execution(* com.yc.api.service..*.*(..)) or execution(* com.yc.app.v2.service..*.*(..)) or execution(* com.yc.ionic.service..*.*(..)) or execution(* com.yc.sdk.oauth2.service..*.*(..)) or execution(* com.yc.im.service..*.*(..)) or execution(* com.yc.batchUpload.service..*.*(..)) or execution(* com.yc.MaintenanceFee.service..*.*(..)) ) and !execution(* com.yc.service.log.ErrorLogImpl.*(..))"/> |
| | | <aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods"/> |
| | | <aop:aspect id="loggerAspect" ref="genericLoggerBean"> |
| | | <aop:around pointcut-ref="logger" method="invoke"/> |
| | | </aop:aspect> |
| | | </aop:config> |
| | | <!-- 事物,日志AOP配置--> |
| | | <!-- 事物,不进行日志AOP配置--> |
| | | <!-- |
| | | <aop:config> <aop:pointcut id="bizMethods" expression="execution(* |
| | | com.yc.service..*.*(..))" /> <aop:advisor advice-ref="txAdvice" |
| | | pointcut-ref="bizMethods" /> </aop:config> |
| | | --> |
| | | <!-- 事物,不进行日志AOP配置--> |
| | | <bean id="genericLoggerBean" class="com.yc.log.ErrorLoggerBean"></bean> |
| | | <!-- 使用annotation定义事务 --> |
| | | <tx:annotation-driven/> |
| | | <!-- |
| | | ****************************国际化********************************** |
| | | --> |
| | | <!-- 这个 bean的id是规定死的,只能为messageSource --> |
| | | <bean id="messageSource" |
| | | class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> |
| | | <property name="basenames"> |
| | | <list> |
| | | <value>messageSource/messages</value> |
| | | </list> |
| | | </property> |
| | | </bean> |
| | | <!-- |
| | | ****************************国际化********************************** |
| | | --> |
| | | <!-- 重新生成功能号 --> |
| | | <bean id="formidVersion" class="com.yc.action.build.FormidVersion"> |
| | | <property name="formidConfig"> |
| | | <value>classpath:FormidVersion.xml</value> |
| | | </property> |
| | | </bean> |
| | | </beans> |