spring与mybatis整合配置文件

最近因为项目要求整合了spring+mybatis架构进行项目开发,现将相关整合配置文件整理如下:

基本架构:spring+springmvc+mybatis

分布式框架:dubbo+zookeeper

数据库:mysql

数据库连接池:Druid

1 数据库连接配置信息jdbc.properties

#mysql version database druid
# setting
validationQuery=SELECT 1
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ivan?useUnicode=true&characterEncoding=utf-8&useSSL=true
jdbc.username=root
jdbc.password=root

2 spring配置文件spring-register.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://code.alibabatech.com/schema/dubbo
  http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
 <!--引入配置文件-->
 <!--  <context:property-placeholder location="classpath:config/jdbc.properties"/>-->
 <bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:config/zookeeper.properties</value>
    <value>classpath:config/jdbc.properties</value>
    <value>classpath:config/log4j.properties</value>
   </list>
  </property>
 </bean>
 <bean id="userService" class="com.ivan.dubbo.service.impl.UserServiceImpl"/>
 <!--提供方应用信息,用于计算依赖关系-->
 <dubbo:application name="ivan-dubbo-server"></dubbo:application>
 <!--使用zookeeper广播注册中心暴露服务地址-->
  <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
 <!-- 本机 伪集群 测试 -->
 <!-- <dubbo:registry protocol="zookeeper" address="zookeeper://127.0.0.1:4170?backup=127.0.0.1:4180,127.0.0.1:4190" />-->
<!-- <dubbo:registry protocol="zookeeper" address="127.0.0.1:4170,127.0.0.1:4180,127.0.0.1:4190"/>-->
 <!-- <dubbo:registry id="ivan-dubbo-server1" protocol="zookeeper" address="127.0.0.1:4170" />
  <dubbo:registry id="ivan-dubbo-server2" protocol="zookeeper" address="127.0.0.1:4180" />
  <dubbo:registry id="ivan-dubbo-server3" protocol="zookeeper" address="127.0.0.1:4190" />
 -->
 <!---使用dubbo协议在20880端口暴露服务-->
 <dubbo:protocol name="dubbo" port="20880"/>
 <!--
    官方注释:扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类。
    测试发现:此处package不填写包名会无法注册Service,扫描全包需填写包首即可或者填写至类的上一级目录。
   -->
 <dubbo:annotation package="com"/>
 <dubbo:service interface="com.ivan.service.provider.UserService" ref="userService" timeout="1200000"></dubbo:service>
</beans>

3 spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
 <!--配置数据源-->
 <bean name="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="5"/>
  <property name="maxActive" value="20"/>
  <!--连接池最小空闲-->
  <property name="minIdle" value="0"/>
  <!--获取连接池最大等待时间-->
  <property name="maxWait" value="60000"/>
  <property name="poolPreparedStatements" value="true"/>
  <property name="maxPoolPreparedStatementPerConnectionSize" value="33"/>
  <!--检测有效sql-->
  <property name="validationQuery" value="${validationQuery}"/>
  <property name="testOnBorrow" value="false"/>
  <property name="testOnReturn" value="false"/>
  <property name="testWhileIdle" value="true"/>
  <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
  <property name="timeBetweenEvictionRunsMillis" value="60000"/>
  <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
  <property name="minEvictableIdleTimeMillis" value="25200000"/>
  <!-- 打开removeAbandoned功能 -->
  <property name="removeAbandoned" value="true"/>
  <!-- 1800秒,也就是30分钟 -->
  <property name="removeAbandonedTimeout" value="1800"/>
  <!-- 关闭abanded连接时输出错误日志 -->
  <property name="logAbandoned" value="true"/>
  <!-- 监控数据库 -->
  <property name="filters" value="mergeStat"/>
 </bean>
 <!--MyBatis配置文件-->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="mapperLocations" value="classpath*:com/ivan/**/mapping/*.xml"/>
 </bean>
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.ivan.dubbo.service.dao.mapper"/>
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
 </bean>
 <!--配置事务管理-->
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"/>
 </bean>
 <!--注解方式配置事务-->
<!-- <tx:annotation-driven transaction-manager="transactionManager"/>-->
 <!-- 拦截器方式配置事物 -->
 <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="insert*" propagation="REQUIRED"/>
   <tx:method name="update*" propagation="REQUIRED"/>
   <tx:method name="delete*" propagation="REQUIRED"/>
   <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
   <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
   <tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
  </tx:attributes>
 </tx:advice>
 <!--
<span style="font-family:FangSong_GB2312;">       </span>Spring aop事务管理
<span style="font-family:FangSong_GB2312;">       此处配置正确无法发布提供者服务,目前没找到解决方案</span>
    -->
 <!-- <aop:config>
   <aop:pointcut id="transactionPointcut" expression="execution(* com.ivan..service.impl.*Impl.*(..))" />
   <aop:advisor advice-ref="transactionAdvice" pointcut-ref="transactionPointcut"/>
 </aop:config> -->
</beans>

总结

以上所述是小编给大家介绍的spring与mybatis整合配置文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 详解spring+springmvc+mybatis整合注解

    每天记录一点点,慢慢的成长,今天我们学习了ssm,这是我自己总结的笔记,大神勿喷!谢谢,主要代码!! ! spring&springmvc&mybatis整合(注解) 1.jar包 2.引入web.xml文件 <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param

  • Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

    前言 距离第一篇 Spring Boot 系列的博文 3 个月了.虽然 XML 形式是我比较推荐的,但是注解形式也是方便的.尤其一些小系统,快速的 CRUD 轻量级的系统. 这里感谢晓春 http://xchunzhao.tk/ 的 Pull Request,提供了 springboot-mybatis-annotation 的实现. 一.运行 springboot-mybatis-annotation 工程 然后Application 应用启动类的 main 函数,然后在浏览器访问: http

  • Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程

    一.摘要 这篇文章将介绍Spring整合Mybatis 如何完成SqlSessionFactory的动态切换的.并且会简单的介绍下MyBatis整合Spring中的官方的相关代码. Spring整合MyBatis切换SqlSessionFactory有两种方法 第一. 继承SqlSessionDaoSupport,重写获取SqlSessionFactory的方法. 第二.继承SqlSessionTemplate 重写getSqlSessionFactory.getConfiguration和Sq

  • 详解Spring Boot整合Mybatis实现 Druid多数据源配置

    一.多数据源的应用场景 目前,业界流行的数据操作框架是 Mybatis,那 Druid 是什么呢? Druid 是 Java 的数据库连接池组件.Druid 能够提供强大的监控和扩展功能.比如可以监控 SQL ,在监控业务可以查询慢查询 SQL 列表等.Druid 核心主要包括三部分: 1. DruidDriver 代理 Driver,能够提供基于 Filter-Chain 模式的插件体系. 2. DruidDataSource 高效可管理的数据库连接池 3. SQLParser 当业务数据量达

  • 关于Spring3 + Mybatis3整合时多数据源动态切换的问题

    以前的项目经历中,基本上都是spring + hibernate + Spring JDBC这种组合用的多.至于MyBatis,也就这个项目才开始试用,闲话不多说,进入正题. 以前的这种框架组合中,动态数据源切换可谓已经非常成熟了,网上也有非常多的博客介绍,都是继承AbstractRoutingDataSource,重写determineCurrentLookupKey()方法.具体做法就不在此废话了. 所以当项目中碰到这个问题,我几乎想都没有想,就采用了这种做法,但是一测试,一点反应都没有.当

  • Spring Boot整合MyBatis操作过程

    1.加入mybatis-spring-boot-stater的Maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> 2.配置数据源 在src/main/re

  • spring与mybatis整合配置文件

    最近因为项目要求整合了spring+mybatis架构进行项目开发,现将相关整合配置文件整理如下: 基本架构:spring+springmvc+mybatis 分布式框架:dubbo+zookeeper 数据库:mysql 数据库连接池:Druid 1 数据库连接配置信息jdbc.properties #mysql version database druid # setting validationQuery=SELECT 1 jdbc.driverClassName=com.mysql.jd

  • 浅析Spring和MyBatis整合及逆向工程

    spring和mybatis整合 整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.0的jar包 mybatis和spring的整合

  • Spring+SpringMVC+MyBatis整合详细教程(SSM)

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些.以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下.这次,先说说三大框架整合过程.个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就

  • Spring和MyBatis整合自动生成代码里面text类型遇到的坑

    Spring和MyBatis整合以后,使用自动生成代码工具生成dao和mapper配置文件,生成步骤如下(以Intelli idea为例). 1.编写生成代码配置文件generatorConfig.xml. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator

  • Spring boot Mybatis 整合(完整版)

    本项目使用的环境: 开发工具: Intellij IDEA 2017.1.3 springboot: 1.5.6 jdk:1.8.0_161 maven:3.3.9 额外功能 PageHelper 分页插件 mybatis generator 自动生成代码插件 步骤: 1.创建一个springboot项目: 2.创建项目的文件结构以及jdk的版本 3.选择项目所需要的依赖 然后点击finish 5.看一下文件的结构: 6.查看一下pom.xml: <?xml version="1.0&qu

  • 详解Spring与Mybatis整合方法(基于IDEA中的Maven整合)

    项目结构 项目路径可以自己定义,只要路径映射正确就可以 pom.xml <properties> <spring.version>5.1.5.RELEASE</spring.version> <mybatis.version>3.4.6</mybatis.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies&g

  • Spring+SpringMVC+MyBatis整合实战(SSM框架)

    目录 SpringMVC Spring MyBatis 项目结构 maven配置文件pom.xml webapp配置文件web.xml spring配置文件applicationContext.xml spring-mvc配置文件spring-mvc.xml mybatis映射文件AccountMapper.xml mybatis配置文件(两种整合方法) 日志配置文件log4j.properties 建表语句 Tomcat传递过程 在写代码之前我们先了解一下这三个框架分别是干什么的? Sprin

  • Spring和Mybatis整合的原理详解

    目录 前言 简单猜想 案例搭建 通过扫描接口 正式开始 setBeanName setApplicationContext afterProperties postProcessBeanDefinitionRegistry 总结 前言 最近读完了Spring的IOC部分的源码,受益匪浅,这篇文章讲解一下MyBatis是如何做到与Spring整合的.MyBatis是如何做到干扰Spring的生命周期,把Mapper一个个的注册到Spring容器中的将在这里揭秘. 简单猜想 因为阅读过Spring源

  • Spring及Mybatis整合占位符解析失败问题解决

    问题:写了一个新的dao接口,进行单元测试时提示: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'maxActive'; nested exceptio

随机推荐