四.springboot整合第三方技术
4.1 SpringBoot整合第三方技术通用步骤
springboot整合第三方技术相比于spring非常简单,仅需按照下面的步骤即可完成整合:
-
导入相关的stater
-
在配置文件中进行配置或采用默认配置
-
使用第三方技术所提供的API
4.2 SpringBoot整合Junit
1.Spring整合JUnit
-
@RunWith:设置Spring专用的测试类运行器
-
@ContextConfiguration:用来设置Spring核心配置文件或配置类的
//加载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));
}
}
2.SpringBoot整合JUnit
第一步:导入相关 starter
junit和springboot的整合坐标在创建springboot项目时会默认提供。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
第二步:在测试类上添加 @SpringBootTest 注解
使用一个注解 @SpringBootTest 替换前面两个注解。内部其实和之前一样,只不过都走默认值。
@SpringBootTest
class Springboot04JunitApplicationTests {
//注入你要测试的对象
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
//执行要测试的对象对应的方法
bookDao.save();
System.out.println("two...");
}
}
加载的配置类或者配置文件是哪一个:就是我们前面启动程序使用的引导类。如果想手工指定引导类有两种方式,
-
第一种方式使用属性的形式进行,在注解@SpringBootTest中添加classes属性指定配置类
-
第二种方式回归原始配置方式,仍然使用@ContextConfiguration注解进行,效果是一样的
4.3 SpringBoot整合MyBatis
第一步:导入相关 starter
<dependencies>
<!--springboot和Mybatis的整合坐标-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!--MySQL的驱动坐标-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
第二步:配置数据源相关信息
其实在这一步,整合就已经结束了,后面就可以在springboot中直接使用Mybatis了
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
第三步:定义持久层接口与映射配置
1.注解方式
@Mapper
public interface UserDao {
@Select("select * from user")
public List<User> getAll();
}
2.xml方式
在 springboot 中如果使用了 MyBatis-Plus 作为 MyBatis 的增强工具,那么 mapper 接口所在的包无需和映射文件在同一个包下,只需在 resources 下面创建一个 mapper 文件夹,在里面创建 mapper.xml 文件即可。
第四步:测试类中注入 dao 接口,测试功能
@SpringBootTest
class Springboot05MybatisApplicationTests {
@Autowired
private UserDao userDao;
@Test
void contextLoads() {
System.out.println(userDao.getAll());
}
}
4.4 SpringBoot整合MybatisPlus
第一步:导入相关 starter
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
第二步:配置数据源相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
4.5 springboot整合Druid
在没有指定数据源时,我们的配置如下:
#2.配置相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=Asia/Shanghai
username: root
password: root
此时虽然没有指定数据源,但是根据SpringBoot的德行,肯定帮我们选了一个它认为最好的数据源对象,这就是HiKari。通过启动日志可以查看到对应的身影。
2021-11-29 09:39:15.202 INFO 12260 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2021-11-29 09:39:15.208 WARN 12260 --- [ main] com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
2021-11-29 09:39:15.551 INFO 12260 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
上述信息中每一行都有HiKari的身影,如果需要更换数据源,其实只需要两步即可。
第一步:导入相关坐标
注意,是坐标,此处不是starter
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
第二步:修改配置,在数据源配置中有一个 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