网络知识 娱乐 Spring整合MyBatis、Spring整合JUnit4(Spring纯注解开发完结篇)

Spring整合MyBatis、Spring整合JUnit4(Spring纯注解开发完结篇)

文章目录

  • 💨更多相关知识👇
    • 一、整合MyBatis
      • ⭐整合变化演示图 ❗
        • ⭐代码演示
    • 二、整合JUnit4
      • ⭐代码演示
  • 作者:KJ.JK

💨更多相关知识👇

💖Spring中的创建对象的三种方式、第三方资源配置管理详细描述及使用(XML版完结篇)

💖Spring中的bean的配置、作用范围、生命周期详细描述及使用(XML版上篇)

💖Spring中的依赖注入、setter与构造器注入、自动装配与集合注入详细描述及使用(XML版中篇)

💖异常处理与解决方案详解上篇

💖异常处理与解决方案详解下篇

💖Math类与System类的常用方法使用

💖JavaEE中的静态方法定义、方法重载要求、return作用详解

💖List接口的常用方法,精华总结

💖JavaEE中的Stream流的常用方法

💖JavaEE中的Stream流知识点使用,精华总结,一文直接上手


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
欢迎大家点赞👍收藏💖评论💬关注🔒
 
💖源码获取 | 💻学习交流 | 🤝商务合作 | 💨私信作者
 
💨推荐一款实用的模拟面试、刷题练习算法的神器、适用于所有的程序猿👉点击开始免费刷题,跟着博主走上巅峰💪


一、整合MyBatis


          "Spring整合MyBatis"                  
------------------------------------------------------------------------------------------------------------
                     
                   * 操作步骤:

                          1.在pom.xml导入Spring整合MyBatis的依赖
                              
                     <!-- mybatis整合spring 这个包是MyBatis提供,把MyBatis整合Spring -->
                               <dependency>
                                   <groupId>org.mybatis</groupId>
                                   <artifactId>mybatis-spring</artifactId>
                                   <version>2.0.4</version>
                               </dependency>
                              
                              
                              
                          2.配置对应的sqlSessionFactory类和MapperScannerConfigurer类
                         
                          

⭐整合变化演示图 ❗

请添加图片描述


⭐代码演示

//Spring整合Mybatis类

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

// Spring整合MyBaits把MyBatis配置文件和需要编写的代码放到了两个类中,这个地方主要就是创建那两个类

public class MyBatisConfig {

    // 1.创建 SqlSessionFactoryBean 到 IoC容器中
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();  //初始化SqlSessionFactory
        ssfb.setTypeAliasesPackage("com.itheima.pojo");   //初始化类型别名
        ssfb.setDataSource(dataSource);  //初始化dataSource

        return ssfb;
    }
    

    // 2.创建 MapperScannerConfigurer 到 IoC容器中
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer msc = new MapperScannerConfigurer();   //获取会话,获取接口实现类对象
        msc.setBasePackage("com.itheima.dao"); // MyBatis会扫描这个包中的所有接口生成实现类
        return msc;
    }
}


请添加图片描述


二、整合JUnit4


         "使用Spring整合Junit4单元测试"
------------------------------------------------------------------------------------------------------------
             
               * 操作步骤:
                          1.在pom.xml导入Spring整合Junit单元测试的依赖
                                  
                               <dependency>
                                   <groupId>org.springframework</groupId>
                                   <artifactId>spring-test</artifactId>
                                   <version>5.2.10.RELEASE</version>
                               </dependency>
                              
                           2.在单元测试类上使用"@RunWith注解,指定其他运行器来运行单元测试"
                              
                                @RunWith(SpringJUnit4ClassRunner.class)  
                              
                             
                           3.在单元测试类上使用"@ContextConfiguration注解,指定配置类去创建IOC容器"
                              
                               @ContextConfiguration(classes= 指定配置类.class)
     
                              
/*

注意:

 @RunWith(SpringRunner.class)   // //使用这个注解主要是为了可以注入IOC使用Spring的东西

 @RunWith:Junit提供的注解,可以指定其他运行器来运行单元测试

 SpringJUnit4ClassRunner:Spring提供的整合JUnit单元测试的运行器,它的作用就是去创建IOC容器

 @ContextConfiguration:指定配置类,让Spring根据这个配置类去创建IOC容器
 
 
 单元测试5中 @RunWith会变成 @ExtendWith

*/
             

⭐代码演示

//pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itheima</groupId>
    <artifactId>spring-06-mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>

        <!--   Spring整合JUnit单元测试的依赖    -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>

        <!-- junit4 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- MySQL数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>

        <!-- spring-jdbc包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>

        <!-- druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>

        <!-- mybatis的包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

        <!-- mybatis整合spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.4</version>
        </dependency>

        <!--MyBatis日志配置-->
        <!-- 添加slf4j日志api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.20</version>
        </dependency>

        <!-- 添加logback-classic依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

        <!-- 添加logback-core依赖 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
    </dependencies>
</project>
             
------------------------------------------------------------------------------------------------------------
             
//Spring核心配置类


import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@ComponentScan("com.itheima.service")
@Import({JdbcConfig.class, MyBatisConfig.class})
public class SpringConfig {
}


------------------------------------------------------------------------------------------------------------
         
//测试类

import com.itheima.config.SpringConfig;
import com.itheima.pojo.Account;
import com.itheima.service.AccountService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

//Spring 整合 Junit 4 单元测试
//@RunWith:Junit提供的注解,可以指定其他运行器来运行单元测试

//SpringJUnit4ClassRunner:Spring提供的整合JUnit单元测试的运行器,它的作用就是去创建IOC容器

//@ContextConfiguration:指定配置类,让Spring根据这个配置类去创建IOC容器

@RunWith(SpringJUnit4ClassRunner.class)        //@ExtendWith Junit 5 整合 Spring


@ContextConfiguration(classes= SpringConfig.class)
public class SpringJunitTest {

    @Autowired
    private AccountService accountService;


    @Test
    public void test01() {
        List<Account> accountList=accountService.findAll();
        accountList.forEach(System.out::println);

    }
}


请添加图片描述


请添加图片描述


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习