文章目录
- 1、SpringBoot整合Junit
- 2、SpringBoot整合MyBatis
- 3、SpringBoot整合MyBatisPlus
- 4、SpringBoot整合Druid
1、SpringBoot整合Junit
步骤:
- 导入测试对应的starter
- 测试类使用@SpringBootTest修饰
- 使用自动装配的形式添加要测试的对象
@SpringBootTest
class SpringbootJunitApplicationTests {
@Autowired
private BookService bookService;
@Test
public void testSave(){
bookService.save();
}
}
关于导入测试的starter,这一步在创建springboot工程时,这个依赖是默认自动加好的,但如果是自己手动创建的Maven工程,就得自己引入一下spring-boot-starter-test
的起步依赖。
关于
@SpringBootTest
注解:
- 类型:测试类注解
- 位置:测试类定义上方
- 作用:设置JUnit加载的SpringBoot启动类
关于classes属性:
报错原因是测试类找不到引导类了,即如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的值:
- 测试类如果存在于引导类(启动类)所在包或子包下,则无需指定引导类
- 反之需要通过classes属性来指定引导类
或者使用报错中的@ContextConfiguration注解也可以实现:
2、SpringBoot整合MyBatis
先复习Spring整合MyBatis流程:(核心配置、SQL映射)
使用SpringBoot整合MyBatis则是:
- 创建模块时勾选MyBatis和MySQL的技术集(用什么技术就勾什么技术,一个勾就是有一个坐标 ==> boot的一个特色)
- 设置数据源参数
到此,整合完成,整合第三方框架都是统一的:导入相关依赖、添加相关配置。接下来定义个Mapper接口简单测试一下:
单元测试中看下效果:
3、SpringBoot整合MyBatisPlus
使用官网版地址创建模块,技术集勾选时找不到MyBatisPlus,可使用阿里云版地址。这里直接导入MP的坐标,不再使用勾选的方式:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version-->
相关配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
# 注意,使用MP不再出现SQL了,MP默认的根据类名找表名,只是大小写转换
# 表名和实体类之间如果不是大小写转换的关系,如表名有统一前缀tb_
# 则需要在配置中指定一下:
mybatis-plus:
global-config:
db-config:
table-prefix: tb_
继承BaseMapper来简化开发,传入实体类:
@Mapper
public interface UserDao extends BaseMapper<User> {
}
4、SpringBoot整合Druid
去mavenrepository中查找druid的坐标:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
刷新maven后写配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource # 指定type,即数据源类型
以上这个使用type的写法是通用性的写法,也可以使用druid专用的配置写法:
spring:
datasource:
druid: # !!!
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
整合任意第三方技术的核心就是:
导入对应的starter
配置对应的设置或采用默认配置