context.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:context="http://www.springframework.org/schema/context"
  3. xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:cache="http://www.springframework.org/schema/cache" xmlns:util="http://www.springframework.org/schema/util"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
  8. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
  9. http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd
  10. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
  11. http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd
  12. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
  13. <context:property-placeholder location="classpath*:${profile}/*.properties" />
  14. <!-- 系统运行参数注入 -->
  15. <util:properties id="sys"
  16. location="classpath:${profile}/sys.properties" />
  17. <!-- 消息参数 -->
  18. <util:properties id="message"
  19. location="classpath:${profile}/message.properties" />
  20. <bean class="com.uas.platform.b2b.core.support.ApplicationContextRegister" />
  21. <context:component-scan base-package="com.uas.platform" />
  22. <context:annotation-config />
  23. <!-- 开启@AspectJ AOP代理 -->
  24. <aop:aspectj-autoproxy />
  25. <!-- 任务调度器 -->
  26. <task:scheduler id="scheduler" pool-size="10" />
  27. <!-- 任务执行器 -->
  28. <task:executor id="executor" pool-size="10" />
  29. <!--开启注解调度支持 @Async @Scheduled -->
  30. <task:annotation-driven executor="executor"
  31. scheduler="scheduler" proxy-target-class="true" />
  32. <!-- 国际化的消息资源文件(本系统中主要用于显示/错误消息定制) -->
  33. <bean id="messageSource"
  34. class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
  35. <property name="basenames">
  36. <list>
  37. <value>classpath:spring/messages</value>
  38. </list>
  39. </property>
  40. <property name="useCodeAsDefaultMessage" value="false" />
  41. <property name="defaultEncoding" value="UTF-8" />
  42. <property name="cacheSeconds" value="60" />
  43. </bean>
  44. <bean id="dataSource" class="com.uas.platform.b2b.data.support.MultiDataSource">
  45. <property name="dataSource">
  46. <ref bean="defaultDataSource" />
  47. </property>
  48. <property name="connectionProperties">
  49. <props>
  50. <prop key="oracle.net.CONNECT_TIMEOUT">6000</prop>
  51. <prop key="oracle.jdbc.ReadTimeout">6000</prop>
  52. <prop key="oracle.net.READ_TIMEOUT">6000</prop>
  53. </props>
  54. </property>
  55. </bean>
  56. <bean id="defaultDataSource" class="com.alibaba.druid.pool.DruidDataSource"
  57. destroy-method="close">
  58. <property name="driverClassName" value="${jdbc.driverClassName}" />
  59. <property name="url" value="${jdbc.url}" />
  60. <property name="username" value="${jdbc.username}" />
  61. <property name="password" value="${jdbc.password}" />
  62. <!-- 连接初始值,连接池启动时创建的连接数量的初始值 -->
  63. <property name="initialSize" value="${jdbc.initialSize}" />
  64. <!-- 连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制 -->
  65. <property name="maxActive" value="${jdbc.maxActive}" />
  66. <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
  67. <property name="minIdle" value="${jdbc.minIdle}" />
  68. <!-- 是否对已备语句进行池管理(布尔值),是否对PreparedStatement进行缓存 -->
  69. <property name="poolPreparedStatements" value="true" />
  70. <!-- 是否对sql进行自动提交 -->
  71. <property name="defaultAutoCommit" value="true" />
  72. <!-- 回收超时连接 -->
  73. <property name="removeAbandoned" value="true" />
  74. <!-- 连接空闲时校验连接有效性 -->
  75. <property name="testWhileIdle" value="true" />
  76. <!-- 校验连接有效性的sql -->
  77. <property name="validationQuery" value="select 1 from dual" />
  78. <!-- 每过timeBetweenEvictionRunsMillis 时间,就会启动一个线程,校验连接池中闲置时间超过minEvictableIdleTimeMillis的连接对象 -->
  79. <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />
  80. <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />
  81. </bean>
  82. <bean id="manageDataSource" class="com.alibaba.druid.pool.DruidDataSource"
  83. destroy-method="close">
  84. <property name="driverClassName" value="${manage.jdbc.driverClassName}" />
  85. <property name="url" value="${manage.jdbc.url}" />
  86. <property name="username" value="${manage.jdbc.username}" />
  87. <property name="password" value="${manage.jdbc.password}" />
  88. <!-- 连接初始值,连接池启动时创建的连接数量的初始值 -->
  89. <property name="initialSize" value="${jdbc.initialSize}" />
  90. <!-- 连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制 -->
  91. <property name="maxActive" value="${jdbc.maxActive}" />
  92. <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
  93. <property name="minIdle" value="${jdbc.minIdle}" />
  94. <!-- 是否对已备语句进行池管理(布尔值),是否对PreparedStatement进行缓存 -->
  95. <property name="poolPreparedStatements" value="true" />
  96. <!-- 是否对sql进行自动提交 -->
  97. <property name="defaultAutoCommit" value="true" />
  98. <!-- 回收超时连接 -->
  99. <property name="removeAbandoned" value="true" />
  100. <!-- 连接空闲时校验连接有效性 -->
  101. <property name="testWhileIdle" value="true" />
  102. <!-- 校验连接有效性的sql -->
  103. <property name="validationQuery" value="select 1 from dual" />
  104. <!-- 每过timeBetweenEvictionRunsMillis 时间,就会启动一个线程,校验连接池中闲置时间超过minEvictableIdleTimeMillis的连接对象 -->
  105. <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />
  106. <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />
  107. </bean>
  108. <!-- hibernate jpa -->
  109. <bean class="org.springframework.orm.jpa.JpaTransactionManager"
  110. id="transactionManager">
  111. <property name="entityManagerFactory" ref="entityManagerFactory" />
  112. </bean>
  113. <tx:annotation-driven transaction-manager="transactionManager" />
  114. <bean id="transactionInterceptor"
  115. class="org.springframework.transaction.interceptor.TransactionInterceptor">
  116. <property name="transactionManager" ref="transactionManager" />
  117. <property name="transactionAttributeSource">
  118. <bean
  119. class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"></bean>
  120. </property>
  121. </bean>
  122. <bean id="transactionAttributeSourceAdvisor"
  123. class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
  124. <property name="transactionInterceptor" ref="transactionInterceptor" />
  125. </bean>
  126. <bean id="entityManagerFactory"
  127. class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  128. <!--<property name="persistenceUnitName" value="persistenceUnit" />-->
  129. <property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml" />
  130. <property name="packagesToScan" value="com.uas.platform" />
  131. <property name="dataSource" ref="dataSource" />
  132. <property name="jpaVendorAdapter">
  133. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  134. <property name="generateDdl" value="false" />
  135. <property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect" />
  136. <property name="showSql" value="false" />
  137. </bean>
  138. </property>
  139. <property name="jpaDialect">
  140. <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
  141. </property>
  142. <property name="jpaProperties">
  143. <props>
  144. <prop key="hibernate.cache.provider_configuration_file_resource_path">classpath:spring/ehcache.xml</prop>
  145. <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
  146. </prop>
  147. <prop key="hibernate.cache.use_query_cache">true</prop>
  148. <prop key="hibernate.cache.use_second_level_cache">true</prop>
  149. <prop key="hibernate.generate_statistics">true</prop>
  150. <prop key="hibernate.use_sql_comments">true</prop>
  151. <prop key="hibernate.format_sql">true</prop>
  152. <prop key="hibernate.generate_statistics">true</prop>
  153. </props>
  154. </property>
  155. </bean>
  156. <!-- jdbctemplate -->
  157. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  158. <property name="dataSource" ref="dataSource" />
  159. </bean>
  160. <!-- 使用ehcache对象缓存 -->
  161. <cache:annotation-driven />
  162. <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
  163. <property name="cacheManager" ref="ehcache"></property>
  164. </bean>
  165. <bean id="ehcache"
  166. class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
  167. <property name="configLocation" value="classpath:spring/ehcache.xml"></property>
  168. <property name="shared" value="true"></property>
  169. </bean>
  170. <!-- mail sender -->
  171. <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  172. <property name="host" value="${email.host}" />
  173. <property name="port" value="${email.port}" />
  174. <property name="javaMailProperties">
  175. <props>
  176. <prop key="mail.smtp.auth">true</prop>
  177. <prop key="mail.smtp.timeout">25000</prop>
  178. <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
  179. <prop key="mail.smtp.port">465</prop>
  180. <prop key="mail.smtp.socketFactory.port">465</prop>
  181. </props>
  182. </property>
  183. <property name="username" value="${email.username}" />
  184. <property name="password" value="${email.password}" />
  185. </bean>
  186. <bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage">
  187. <property name="from" value="${email.from}" />
  188. </bean>
  189. <bean id="velocityEngine"
  190. class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
  191. <property name="velocityProperties">
  192. <props>
  193. <prop key="resource.loader">class</prop>
  194. <prop key="class.resource.loader.class">
  195. org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
  196. </prop>
  197. <prop key="velocimacro.library"></prop>
  198. </props>
  199. </property>
  200. </bean>
  201. <!-- 文件上传 -->
  202. <bean id="multipartResolver"
  203. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  204. <property name="defaultEncoding" value="utf-8"></property>
  205. </bean>
  206. <!-- 账户中心配置 -->
  207. <bean id="accountConfigurer" class="com.uas.account.web.AccountConfigurer"
  208. init-method="init">
  209. <property name="configPath" value="classpath:${profile}/account.properties" />
  210. </bean>
  211. </beans>