精通系列)中

Posted 北芳科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精通系列)中相关的知识,希望对你有一定的参考价值。

目录
Java之Spring Boot入门到精通【IDEA版】(一篇文章精通系列)【上】
Java之Spring Boot入门到精通【IDEA版】SpringBoot整合其他框架【Junit,Redis,MyBatis】(一篇文章精通系列)【中】
Java之Spring Boot入门到精通【IDEA版】SpringBoot原理分析,SpringBoot监控(一篇文章精通系列)【下】

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)完善测试类

以上是关于精通系列)中的主要内容,如果未能解决你的问题,请参考以下文章

Java之Spring Boot入门到精通IDEA版SpringBoot原理分析,SpringBoot监控(一篇文章精通系列)下

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

精通系列)

Oracle 从入门到精通系列讲解 - 总目录

Oracle 从入门到精通系列讲解 - 总目录

精通系列)