SpringBoot【基础篇】---- 基于SpringBoot实现SSMP整合
- 1. 整合JUnit
-
- 1. 测试类存在于引导类所在包或子包中无需指定引导类
- 2. 测试类不存在于引导类所在的包或者子包中需要通过 classes 属性指定引导类
- 3. 总结
- 2. 整合MyBatis
-
- 1. 导入对应的 starter
- 2. 配置数据源相关信息
- 3. 实体类
- 4. 映射接口(Dao)
- 5. 测试类
- 3. 整合MyBatis-Plus、
-
- 1. 导入对应的 starter
- 2. 配置数据源相关信息
- 3. 映射接口(Dao)
- 4. 整合Druid
-
- 1. 导入对应的 starter
- 2. 修改配置
1. 整合JUnit
1. 测试类存在于引导类所在包或子包中无需指定引导类
@SpringBootTest
class Springboot04JunitApplicationTests {
//1、注入要测试的对象
@Autowired
private BookDao bookDao;
//2、执行要测试对象的方法
@Test
void contextLoads() {
bookDao.save();
}
}
-
名称:
@SpringBootTest
- 类型:测试类注解
- 位置:测试类定义上方
- 作用:设置 JUnit 加载的 SpringBoot 启动类
- 范例:
@SpringBootTest
class Springboot04JunitApplicationTests {}
2. 测试类不存在于引导类所在的包或者子包中需要通过 classes 属性指定引导类
//加载spring整合junit专用的类运行器
@RunWith(SpringJUnit4ClassRunner.class)
//指定对应的配置信息
@ContextConfiguration(classes = SpringConfig.class)
public class AccountServiceTestCase {
//注入你要测试的对象
@Autowired
private AccountService accountService;
@Test
public void testGetById(){
//执行要测试的对象对应的方法
System.out.println(accountService.findById(2));
}
}
简化方式
@SpringBootTest(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {}
原始配置方式
@SpringBootTest
@ContextConfiguration(classes = Springboot04JunitApplication.class)
class Springboot04JunitApplicationTests {}
3. 总结
- 导入测试对应的 starter
- 测试类使用 @SpringBootTest 修饰
- 使用自动装配的形式添加要测试的对象
- 测试类如果存在与引导类所在包或子包中无需指定引导类
- 测试类如果不存在于引导类所在包或子包中需要通过 classes 属性指定引导类
2. 整合MyBatis
- 核心配置:数据库连接相关信息(连什么?谁连?什么权限)
- 映射配置:SQL 映射(XML / 注解)
1. 导入对应的 starter
<dependencies>
<!--1.导入对应的starter-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
2. 配置数据源相关信息
#2.配置相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
3. 实体类
public class Book {
private Integer id;
private String type;
private String name;
private String description;
}
4. 映射接口(Dao)
@Mapper
public interface BookDao {
@Select("select * from tbl_book where id = #{id}")
public Book getById(Integer id);
}
注意:数据库 SQL 映射时需要添加 @Mapper 才能被容器识别
5. 测试类
@SpringBootTest
class Springboot05MybatisApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.getById(1));
}
}
注意:MySql 驱动升级到 8 以后会强制要求配置时区,如果不设置会出现问题。解决办法很简单,在 MySQL 的 url 上面添加上对应的设置即可。
3. 整合MyBatis-Plus、
1. 导入对应的 starter
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
2. 配置数据源相关信息
#2.配置相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
3. 映射接口(Dao)
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
mybatis-plus 的核心在于 Dao 接口继承了一个 BaseMapper 的接口,这个接口中帮助开发者预定了若干个常用的 API 接口,简化了通用 API 接口的开发工作。
4. 整合Druid
前面整合MyBatis和MP的时候,使用的数据源对象都是SpringBoot默认的数据源对象,下面我们手工控制一下,自己指定了一个数据源对象,Druid。
1. 导入对应的 starter
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
</dependencies>
2. 修改配置
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root