写点什么

spring 整合 mybatis、springMVC(总结)

作者:Studying_swz
  • 2022-10-22
    天津
  • 本文字数:4712 字

    阅读完需:约 15 分钟

spring整合mybatis、springMVC(总结)

1.mybatis 配置流程

  • 实体类 pojo 类

  • 编写 Dao 层(UserMapper 接口以及 xml 文件)

  • 编写 Service 接口以及实现类,通过 Dao 层对象进行访问数据库

  • 创建 mybatis 的核心配置文件 mybatis-config.xml,并将 UserMapper 绑定到 mybatis-config.xml 中

  • 之前的配置


    <?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>      <environments default="development">        <environment id="development">        <transactionManager type="JDBC"/>        <dataSource type="POOLED">          <property name="driver" value="com.mysql.jdbc.Driver"/>          <property name="url"          value="jdbc:mysql://localhost:3306/mybatis?          useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>          <property name="username" value="root"/>          <property name="password" value="123456"/>        </dataSource>        </environment>      </environments>      <mappers>        <mapper resource="com/kuang/dao/userMapper.xml"/>      </mappers>    </configuration>
复制代码


- 引入到spring后的配置
复制代码


    <?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>          <!-- 原本是要去配置数据源信息的,但是和spring整合后,此步骤将交给spring去做-->            <mappers>        <mapper resource="com/kuang/dao/userMapper.xml"/>      </mappers>    </configuration>
复制代码


  • 编写 MyBatis 工具类


  import org.apache.ibatis.io.Resources;  import org.apache.ibatis.session.SqlSession;  import org.apache.ibatis.session.SqlSessionFactory;  import org.apache.ibatis.session.SqlSessionFactoryBuilder;  import java.io.IOException;  import java.io.InputStream;  public class MybatisUtils {    private static SqlSessionFactory sqlSessionFactory;    static {      try {        String resource = "mybatis-config.xml";        InputStream inputStream =  Resources.getResourceAsStream(resource);        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);      } catch (IOException e) {        e.printStackTrace();      }    }    //获取SqlSession连接    public static SqlSession getSession(){      return sqlSessionFactory.openSession();    }  }
复制代码

2.spring 配置流程

  • 在 xml 文件中注册 bean 对象(没有用注解)


  <?xml version="1.0" encoding="UTF-8"?>  <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就是java对象 , 由Spring创建和管理-->    <bean id="hello" class="com.kuang.pojo.Hello">      <property name="name" value="Spring"/>    </bean>  </beans>
复制代码


  • 或者在 xml 文件中使用扫描包(配合注解)


  <?xml version="1.0" encoding="UTF-8"?>  <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">    <!--指定注解扫描包-->    <context:component-scan base-package="com.kuang.pojo"/>  </beans>
复制代码

3.spring 整合 Dao 层

  1. 创建数据库配置文件 database.properties


  jdbc.driver=com.mysql.jdbc.Driver  jdbc.url=jdbc:mysql://localhost:3306/mytest?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC  jdbc.username=root  jdbc.password=root
复制代码


  1. 创建 spring 整个 Dao 层的配置文件 spring-dao.xml,主要整合数据库连接文件,连接池信息,sqlsessionFactory(需绑定 Mybatis 配置文件去读取配置 Mapper 信息),dao 层动态注入到 Spring 中


  <?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: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/context         https://www.springframework.org/schema/context/spring-context.xsd">        <!--1,关联数据库连接文件-->      <context:property-placeholder location="classpath:database.properties"/>      <!--2,连接池 c3p0-->      <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">          <property name="driverClass" value="${jdbc.driver}"/>          <property name="jdbcUrl" value="${jdbc.url}"/>          <property name="user" value="${jdbc.username}"/>          <property name="password" value="${jdbc.password}"/>            <!-- c3p0连接池的私有属性 -->          <property name="maxPoolSize" value="30"/>          <property name="minPoolSize" value="10"/>          <!-- 关闭连接后不自动commit -->          <property name="autoCommitOnClose" value="false"/>          <!-- 获取连接超时时间 -->          <property name="checkoutTimeout" value="10000"/>          <!-- 当获取连接失败重试次数 -->          <property name="acquireRetryAttempts" value="2"/>      </bean>      <!-- 3,配置sqlSessionFactory-->      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">          <property name="dataSource" ref="dataSource"/>          <!-- 绑定mybatis的配置文件-->          <property name="configLocation" value="classpath:mybatis-config.xml"/>      </bean>      <!-- 4,配置dao层,动态实现了接口可以注入到Spring容器中-->      <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">          <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>          <property name="basePackage" value="com.kuangshen.dao"/>      </bean>  </beans>
复制代码


分析:spring-dao.xml 文件整合了 mybatis 的 mybatis-config.xml 文件中的数据库配置信息以及工具类和 dao 层的 bean 信息。

4.spring 整合 Service 层

创建 spring 整合 service 层的文件spring-service.xml,主要配置让 spring 去扫描 service 包的位置,配置 impl 中要注入的 mapper 信息,声明事务的提交方式,以及 AOP 事务的支持。


<?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: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/context       https://www.springframework.org/schema/context/spring-context.xsd">    <!--扫描service下的包 -->    <context:component-scan base-package="com.swz.service"/>    <!-- 2业务类注入到spring-->    <bean id="UserServiceImpl" class="com.swz.service.UserServiceImpl">        <property name="userMapper" ref="userMapper"/>    </bean>    <!-- 3声明事务提交方式-->    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"/>    </bean>    <!-- 4AOP事务支持--></beans>
复制代码


注意:<context:component-scan base-package="com.swz.service"/> 在 xml 配置了这个标签后,spring 可以自动去扫描 base-pack 下面或者子包下面的 Java 文件,如果扫描到有 @Component @Controller@Service 等这些注解的类,则把这些类注册为 bean。

5.spring 整合 MVC 层

  1. 创建 spring 整合 mvc 层的文件 spring-mvc.xml,主要配置 springMVC 静态资源过滤,开启 springMVC 注解驱动


  <?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:mvc="http://www.springframework.org/schema/mvc"         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/mvc         https://www.springframework.org/schema/mvc/spring-mvc.xsd         http://www.springframework.org/schema/context         https://www.springframework.org/schema/context/spring-context.xsd">      <!--1.注解驱动-->      <mvc:annotation-driven/>      <!--2处理器映射器和处理器适配器-->      <mvc:default-servlet-handler/>      <!--3扫描包-->      <context:component-scan base-package="com.leshangju.controller"/>        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">          <property name="prefix" value="/WEB-INF/jsp/"/>          <property name="suffix" value=".jsp"/>      </bean>  </beans>
复制代码

6. spring 整合 dao-service-mvc 三层

将以上配置的 spring-dao.xml,spring-service.xml,spring-mvc.xml 整合到 applicationContext.xml 中,同一个 spring 文件中来,实现最终的整合。


注意:此步骤正确的方式是每配置完一个 xml 都注入整合进来一次,而不是最终才整合。


<?xml version="1.0" encoding="UTF-8"?><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">    <import resource="spring-dao.xml"/>    <import resource="spring-sevice.xml"/>    <import resource="spring-mvc.xml"/></beans>
复制代码


学习链接:https://blog.csdn.net/qq_37534947/article/details/122598685https://blog.csdn.net/qq_37534947/article/details/122569406https://blog.csdn.net/qq_37534947/article/details/122628171参考链接:https://blog.csdn.net/m0_47637225/article/details/122478644

发布于: 刚刚阅读数: 4
用户头像

Studying_swz

关注

还未添加个人签名 2020-12-23 加入

还未添加个人简介

评论

发布
暂无评论
spring整合mybatis、springMVC(总结)_spring_Studying_swz_InfoQ写作社区