目录
一、SpringBoot整合junit
环境准备
编写测试类
二、SpringBoot整合Mybatis
创建模块
定义实体类
定义dao接口
定义测试类
编写配置
最后进行测试
三、使用Druid数据源
回顾Spring整合junit,使用@Runwith注解指定运行器,使用@ContextConfiguration注解来指定配置类或者配置文件,而SpringBoot整合junit特别简单,分为以下三部完成
● 在测试类上添加SpringBootTest注解
● 使用@Autowired注入到测试的资源
● 定义测试方式进行测试
创建一个SpringBoot工程
创建BookService接口,内容如下:
public interface BookService {
public void save();
}
创建一个BookServiceImpl类,使其实现BookService接口,内如如下
@Service
public class BookServiceImpl implements BookService {
@Override
public void save() {
System.out.println("book service is running ...");
}
}
将BookService注入到测试类中
@SpringBootTest
class Springboot07TestApplicationTests {
@Autowired
private BookService bookService;
@Test
public void save() {
bookService.save();
}
}
注意:这里的引导类所在包必须是测试类所在包及其子包
例如:
● 引导类所在包是 com.itheima
● 测试类所在包是 com.itheima
如果不满足这个要求的话,就需要使用@SpringBootTest注解时,使用classes属性指定引导类的字节码对象,如@SpringBootTest(classes = Springboot07TestApplication.class)
回顾Spring整合Mybatis需要定义很多配置类
SpringConfig配置类(导入JdbcConfig配置类,导入MybatisConfig)
JdbcConfig配置类(定义数据源(加载properties配置项:duiver,url,username,password))
MybatisConfig配置类(定义sqlsessionFactoryBean、定义映射配置)
SpringBoot整合mybatis
创建新模块,选择Spring Initializr,并配置模块相关基础信息
选择模块需要的技术集(myBatis、MySQL)
在damain包中定义实体类Book,内容如下:
public class Book {
private Integer id;
private String name;
private String type;
private String description;
//setter and getter
//toString
}
在dao包下定义BookDao接口,使用@Mapper注解将BookDao接口注入到Spring容器中,内容如下
@Mapper
public interface BookDao {
@Select("select * from tbl_book where id = #{id}")
public Book getById(Integer id);
}
在定义包com.itheima中编写测试类,内容如下:
@SpringBootTest
class Springboot08MybatisApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void testGetById() {
Book book = bookDao.getById(1);
System.out.println(book);
}
}
在SpringBoot配置文件中进行配置,在application.yml配置文件中配置如下内容:
spring:
datasource:
driver-class-name:
com.mysql.jdbc.Driver url:
jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
注意:
SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区
jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC,或在MySQL数据库端配置时区解决此问题
我们并没有指定数据源,SpringBoot有默认的数据源,我们也可以指定使用Druid数据源,按照如下步骤实现
导入Druid依赖
com.alibaba
druid
1.1.16
在application.yml配置文件配置
可以通过spring.datasource.type来配合着使用什么数据源,配置内容可以改进为:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource