Java之Spring Boot入门到精通IDEA版SpringBoot整合其他框架Junit,Redis,MyBatis(一篇文章精通系列)中

Posted 蓝盒子itbluebox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之Spring Boot入门到精通IDEA版SpringBoot整合其他框架Junit,Redis,MyBatis(一篇文章精通系列)中相关的知识,希望对你有一定的参考价值。

一、SpringBoot整合Junit

①搭建SpringBoot工程




②引入starter-test起步依赖

  • 快速构建的spring项目自动以及引入了spring-test的依赖

③编写测试类

  • 并且也自动写了test类,但是为了方便演示,现在将下面对应的内容删除
  • 删除成功

(1)在启动类傍边其他类

  • UserService

package cn.itbluebox.springboottest;
import org.springframework.stereotype.Service;
@Service
public class UserService {
    public void add(){
        System.out.println("add...");
    }
}
  • 创建测试类

④添加测试相关注解

  • 引入junit的依赖
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

@RunWith(SpringRunner.class)
@SpringBootTest(clasSes =启动类.class)

package cn.itbluebox.test;
/*
userService的测试类
 */
import cn.itbluebox.springboottest.SpringbootTestApplication;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootTestApplication.class)
public class UserServiceTest {
}

⑤编写测试方法

package cn.itbluebox.test;
/*
userService的测试类
 */
import cn.itbluebox.springboottest.SpringbootTestApplication;
import cn.itbluebox.springboottest.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootTestApplication.class)
public class UserServiceTest {
    @Autowired
    private UserService userService;
    @Test
    public void test(){
        userService.add();
    }
}
  • 运行测试
  • 运行成功
  • 如果主包和测试包的目录结构是相同的则@SpringBootTest(classes = SpringbootTestApplication.class)不需要写当中的classes
  • 将UserServiceTest类移动到springboottest包当中
package cn.itbluebox.springboottest;

/*
userService的测试类
 */
import cn.itbluebox.springboottest.SpringbootTestApplication;
import cn.itbluebox.springboottest.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {

    @Autowired
    private UserService userService;

    @Test
    public void test(){
        userService.add();
    }

}

  • 运行测试

二、SpringBoot整合Redis

1、搭建SpringBoot工程





2、引入redis起步依赖

  • 通过上述的自动创建的工程redis的依赖已经自动添加好

3、在测试方法当中默认连接本地的redis数据库

不需要配置如何信息

package cn.itbluebox.springbootredis;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.BoundValueOperations;
import org.springframework.data.redis.core.RedisTemplate;

@SpringBootTest
class SpringbootRedisApplicationTests {

    @Autowired
    private RedisTemplate redisTemplate;
    @Test
    void testSet() {
        //存入数据
        redisTemplate.boundValueOps("name").set("张三");
    }
    @Test
    void testGet() {
        //获取数据
        Object name = redisTemplate.boundValueOps("name").get();
        System.out.println(name);
    }
}

  • 启动redis

  • 运行测试类(测试方法testSet()存入数据)

  • 运行测试类(测试方法testGet()获取数据)

4、配置redis相关属性



spring:
  redis:
    host: 127.0.0.1 #redis的主机地址
    port: 6379
  
  • 运行测试


三、SpringBoot整合MyBatis

1、搭建SpringBoot工程





2、引入mybatis起步依赖,添加mysq|驱动

通过上述的工程搭建自动添加好了依赖

3、定义表和实体类

  • 创建数据库
CREATE DATABASE /*!32312 IF NOT EXISTS*/`springboot` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;

USE `springboot`;

/*Table structure for table `t_user` */

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `password` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

/*Data for the table `t_user` */

insert  into `t_user`(`id`,`username`,`password`) values (1,'zhangsan','123'),(2,'lisi','234');

  • 创建实体类

package cn.tbluebox.springbootmybatis.domain;

public class User {

    private int id;
    private String username;
    private String password;

    public User() {
    }

    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\\'' +
                ", password='" + password + '\\'' +
                '}';
    }
}

4、编写DataSource和MyBatis相关配置



#datasource
spring:
  datasource:
    url: jdbc:mysql:///springboot
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

5、编写dao和mapper文件/纯注解开发


package cn.tbluebox.springbootmybatis.mapper;

import cn.tbluebox.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {

    @Select("select * from t_user")
    public List<User> findAll();

}

6、测试

package cn.tbluebox.springbootmybatis;

import cn.tbluebox.springbootmybatis.domain.User;
import cn.tbluebox.springbootmybatis.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class SpringbootMybatisApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void findAllUser() {
        List<User> all = userMapper.findAll();
        System.out.println(all);
    }

}

运行测试类

7、编写dao和mapper文件/XML开发

(1)创建UserXmlMapper接口


package cn.tbluebox.springbootmybatis.mapper;

import cn.tbluebox.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserXmlMapper {

    public List<User> findAll();

}

(2) 编写配置文件



<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.tbluebox.springbootmybatis.mapper.UserXmlMapper">
    <select id="findAll" resultType="user">
        select * from t_user
    </select>
</mapper>

(3) 配置配置文件

#datasource
spring:
  datasource:
    url: jdbc:mysql:///springboot
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

# mybatis
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml  #mapper映射文件的路径
  type-aliases-package: cn.tbluebox.springbootmybatis.domain
  # config-location: #指定mybatis核心配置文件

(4)完善测试类

package cn.tbluebox.springbootmybatis;

import cn.tbluebox.springbootmybatis.domain.<

以上是关于Java之Spring Boot入门到精通IDEA版SpringBoot整合其他框架Junit,Redis,MyBatis(一篇文章精通系列)中的主要内容,如果未能解决你的问题,请参考以下文章

Java之Spring Boot入门到精通IDEA版SpringBoot整合其他框架Junit,Redis,MyBatis(一篇文章精通系列)中

Java之Spring AOP入门到精通IDEA版(一篇文章精通系列)

Spring Boot从入门到精通-项目搭建

Java之Spring入门到精通IDEA版Spring的IoC和DI(一篇文章精通系列)

Java之Spring入门到精通IDEA版Spring的IoC和DI(一篇文章精通系列)

Java之Spring入门到精通IDEA版IoC和DI注解开发(一篇文章精通系列)