spring-jdbc.xml 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-4.2.xsd
  11. http://www.springframework.org/schema/tx
  12. http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
  13. http://www.springframework.org/schema/aop
  14. http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
  15. <tx:annotation-driven/>
  16. <!-- Import Properties -->
  17. <context:property-placeholder location="classpath*:platform.properties"/>
  18. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
  19. init-method="init" destroy-method="close">
  20. <property name="url">
  21. <value>${jdbc.url}</value>
  22. </property>
  23. <property name="username">
  24. <value>${jdbc.username}</value>
  25. </property>
  26. <property name="password">
  27. <value>${jdbc.password}</value>
  28. </property>
  29. <property name="initialSize">
  30. <value>${jdbc.initialSize}</value>
  31. </property>
  32. <property name="maxActive">
  33. <value>${jdbc.maxActive}</value>
  34. </property>
  35. <property name="proxyFilters">
  36. <list>
  37. <ref bean="stat-filter"/>
  38. <!--过滤永真条件 防止注入-->
  39. <ref bean="wall-filter"/>
  40. </list>
  41. </property>
  42. <property name="connectionInitSqls" value="set names utf8mb4;"/>
  43. </bean>
  44. <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
  45. <property name="slowSqlMillis" value="1000"/>
  46. <property name="logSlowSql" value="true"/>
  47. <property name="mergeSql" value="true"/>
  48. </bean>
  49. <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
  50. <property name="dbType" value="mysql"/>
  51. <property name="config" ref="wall-filter-config"/>
  52. </bean>
  53. <bean id="wall-filter-config" class="com.alibaba.druid.wall.WallConfig">
  54. <property name="multiStatementAllow" value="true"/>
  55. </bean>
  56. <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean>
  57. <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype">
  58. <property name="patterns">
  59. <list>
  60. <value>com.platform.controller.*</value>
  61. <value>com.platform.service.*</value>
  62. </list>
  63. </property>
  64. </bean>
  65. <aop:config>
  66. <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut"/>
  67. </aop:config>
  68. <!-- 配置事务管理器 -->
  69. <bean id="transactionManager"
  70. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  71. <property name="dataSource" ref="dataSource"></property>
  72. </bean>
  73. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  74. <property name="dataSource">
  75. <ref bean="dataSource"/>
  76. </property>
  77. </bean>
  78. <!-- JDBC配置 -->
  79. <bean id="namedParameterJdbcTemplate"
  80. class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
  81. <constructor-arg ref="dataSource"/>
  82. </bean>
  83. <!-- SqlSessionFactory MyBatisPlus Config -->
  84. <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
  85. <property name="typeAliasesPackage" value="com.platform.entity"/>
  86. <property name="dataSource" ref="dataSource"/>
  87. <property name="globalConfig">
  88. <bean class="com.baomidou.mybatisplus.core.config.GlobalConfig">
  89. <property name="dbConfig">
  90. <bean class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
  91. <!-- 表关键词 key 生成器 -->
  92. <property name="keyGenerator">
  93. <bean class="com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator"/>
  94. </property>
  95. <!-- 主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID"; -->
  96. <property name="idType" value="AUTO"/>
  97. <!-- 字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" -->
  98. <property name="fieldStrategy" value="NOT_EMPTY"/>
  99. <!-- 逻辑删除配置 -->
  100. <property name="logicDeleteValue" value="0"/>
  101. <property name="logicNotDeleteValue" value="1"/>
  102. <!-- 数据库类型,默认值为未知的数据库类型 如果值为OTHER,启动时会根据数据库连接 url 获取数据库类型;如果不是OTHER则不会自动获取数据库类型 -->
  103. <property name="dbType" value="OTHER"/>
  104. </bean>
  105. </property>
  106. <property name="sqlInjector">
  107. <!-- 注入逻辑删除 -->
  108. <bean class="com.baomidou.mybatisplus.extension.injector.LogicSqlInjector"/>
  109. </property>
  110. </bean>
  111. </property>
  112. <property name="configuration">
  113. <bean class="com.baomidou.mybatisplus.core.MybatisConfiguration">
  114. <!-- 是否开启自动驼峰命名规则(camel case)映射,即从A_COLUMN(下划线命名) 到Java 属性名 aColumn(驼峰命名) 的类似映射。 -->
  115. <property name="mapUnderscoreToCamelCase" value="true"/>
  116. <!-- 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true。 -->
  117. <property name="cacheEnabled" value="false"/>
  118. <!--指定当结果集中值为 null 的时候是否调用映射对象的 Setter(Map 对象时为 put)方法,通常运用于有 Map.keySet() 依赖或 null 值初始化的情况。
  119. 通俗的讲,即 MyBatis 在使用 resultMap 来映射查询结果中的列,如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段,这就
  120. 导致在调用到该字段的时候由于没有映射,取不到而报空指针异常。-->
  121. <property name="callSettersOnNulls" value="false"/>
  122. <!-- 配置JdbcTypeForNull, oracle数据库必须配置 -->
  123. <property name="jdbcTypeForNull" value="NULL"/>
  124. </bean>
  125. </property>
  126. <property name="plugins">
  127. <array>
  128. <!-- 性能分析拦截器 -->
  129. <bean class="com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor">
  130. <property name="format" value="true"></property>
  131. <property name="maxTime" value="100"></property>
  132. <!-- 是否写入日志文件(true 写入日志文件,不阻断程序执行!超过设定的最大执行时长异常提示) -->
  133. <property name="writeInLog" value="true"></property>
  134. </bean>
  135. <!-- 分页拦截器 -->
  136. <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"/>
  137. <!-- 乐观锁 -->
  138. <bean class="com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor"/>
  139. </array>
  140. </property>
  141. </bean>
  142. <!-- MyBatis Mapper Scan Config -->
  143. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  144. <property name="basePackage" value="com.platform.dao,com.platform.*.dao"/>
  145. </bean>
  146. </beans>