SpringBoot——整合第三方技术

目录

整合JUnit

整合MyBatis

整合MyBatis-Plus

​整合Druid


整合JUnit

准备工作

BookDao:

public interface BookDao {
    public void save();
}

BookDaoImpl:

@Repository
public class BookDaoImpl implements BookDao {
    @Override
    public void save() {
        System.out.println("book dao is running ...");
    }
}

测试类:

@SpringBootTest
class Springboot04JunitApplicationTests {
    //1. 注入你要测试的对象
    @Autowired
    private BookDao bookDao;
    @Test
    void contextLoads() {
        //2.执行要测试的对象对应的方法
        bookDao.save();
    }
}

        SpringBoot整合整合JUnit主要的核心就是@SpringBootTest,对于这个注解所添加的位置是在测试类的上方,有了这个注解就可以完成测试工作。

1.导入测试对应的starter

        这个创建工程时自动就有了,如果要用纯手工的方式去做一个boot工程的话,不要忘记导入这个坐标。
2.测试类使用@SpringBootTest修饰
3.使用自动装配的形式添加要测试的对象

        如果测试类和引导类所在包的包名不同的话,则会报错。此时只需要在测试类中的@SpringBootTest注解中添加引导类的类名即可。(其实就是测试类找不到引导类了)

@SpringBootTest(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {
    //1. 注入你要测试的对象
    @Autowired
    private BookDao bookDao;
    @Test
    void contextLoads() {
        //2.执行要测试的对象对应的方法
        bookDao.save();
    }
}

        Spring结合JUnit的时候其实有两个设定,第一个设定叫做@RunWith设置运行器,第二个叫做@ContextConfiguration,跟你对应的配置文件或者配置类是哪一个,说白了是我们的测试的整个工作其实取的这种被测试的对象是在Spring容器中的,此时就需要拿到Spring容器,如果没有按照要求将测试类放在包下则拿不到这个容器,因此需要告诉他配置类或者配置文件在哪里,我们加的@SpringBootTest(classes = Springboot04JunitApplication.class)其实就是在指明他的配置类。

        Springboot会从测试类所在的包,里面有没有哪个类加载了@SpringBootConfiguration,所以在这个时候如果没找到就会报错。(@SpringBootApplication里包含@SpringBootConfiguration)

        使用clasess属性加载指定的配置类,如果不指定就会在测试类所在的包或者是父包当中去找,看谁携带这个注解。

        测试类如果存在于引导类所在包或子包中无需指定引导类。
        测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类。

整合MyBatis

 导入对应的starter

配置相关信息

# 应用名称
spring.application.name=springboot_05_mybatis
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locations=classpath:mappers/*xml
#指定Mybatis的实体目录
mybatis.type-aliases-package=com.zqf.springboot_05_mybatis.mybatis.entity
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=mybatis
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=123456

Book:

package com.zqf.domain;

public class Book {
    private Integer id;
    private String type;
    private String name;
    private String description;

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", type='" + type + '\'' +
                ", name='" + name + '\'' +
                ", description='" + description + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

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

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

 BookDao:

package com.zqf.dao;

import com.zqf.domain.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
public interface BookDao {
    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);
}

1.勾选MyBatis技术,也就是导入MyBatis对应的starter
2.数据库连接相关信息转换成配置
3.数据库SQL映射需要添加@Mapper被容器识别到

整合MyBatis-Plus

        在BookDao接口当中继承BaseMapper<Book>即可,mybatisplus的使用:MyBatis-Plus整合

测试类:

@SpringBootTest
class Springboot06MybatisPlusApplicationTests {

    @Autowired
    private BookDao bookDao;

    @Test
    void contextLoads() {
        System.out.println(bookDao.selectById(2));
    }
}

直接测试会产生报错信息说数据库表不存在

此时需要mp的相关配置  


整合Druid

1. 导入德鲁伊连接池坐标

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring- boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>

2. 配置

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

这种配置不是整合型的配置方法,还有一种配置方法:

spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
      username: root
      password: 123456

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值