用SpringBoot实现技术整合,体验SpringBoot的简化开发
一、前言
前面已经讲解了SpringBoot配置文件的如何使用,相信小伙伴们已经对于配置文件有了一定的了解和使用。这篇博客我们学习四种技术的整合方式。认真看下去,相信我,会收获不少!通过这次的学习,大家能够感受到SpringBoot到底有多酷炫~
二、整合Junit
需要注意的是:我们整合什么样的技术,就需要导入需要的依赖,这一点千万不能忘记,对于任意技术的整合,也是这样的原理!
先导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
测试代码
@SpringBootTest
class Springboot0202ApplicationTests {
@Test
void contextLoads() {
System.out.println("Hello~");
}
}
运行结果
好了,可以告诉大家,这就已经成功了。小伙伴们可能就会问了,啊?这就结束了吗?这整合的也太快了吧!没错,用springboot就是这么快,就是要简化开发!
接下来看看该技术的使用细节
程序加载的配置类或者配置文件是我们前面启动程序使用的引导类。如果想手工指定引导类有两种方式,第一种方式使用属性的形式进行,在注解@SpringBootTest
中添加classes
属性指定配置类
具体的代码
@SpringBootTest(classes = Springboot0202Application.class)
class Springboot0202ApplicationTests {
@Test
void contextLoads() {
System.out.println("Hello~");
}
}
第二种方式回归原始配置方式,使用@ContextConfiguration
注解进行,效果是一样的
具体的代码
//@SpringBootTest(classes = Springboot0202Application.class)
@ContextConfiguration(classes = Springboot0202Application.class)
class Springboot0202ApplicationTests {
@Test
void contextLoads() {
System.out.println("Hello~");
}
}
总结
- 导入测试对应的starter
- 测试类使用@SpringBootTest修饰
- 测试类如果存在于引导类所在包或子包中无需指定引导类
- 测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类
三、整合MyBatis
先导入需要的依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
然后配置数据源相关信息,没有这个信息就不知道连接哪一个数据库
具体的配置信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/bookmanager?serverTimezone=Asia/Shanghai
username: "root"
password: "root"
结束了,就这么多,没了。有人就很纳闷,这就结束了?对,这就结束了,SpringBoot把配置中所有可能出现的通用配置都简化了。下面写一个MyBatis程序运行需要的Dao就可以运行了
实体类
@Data
public class Book {
private Integer id;
private String type;
private String name;
private String description;
}
映射接口(Dao)
@Mapper
public interface BookDao {
@Select("SELECT * FROM book WHERE id = #{id}")
Book getById(Integer id);
}
测试类
@SpringBootTest
class Springboot02MybatisApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
Book book = bookDao.getById(2);
System.out.println(book);
}
}
运行结果
查看自己的数据库,结果正确!
总结
- 整合操作需要导入MyBatis对应的starter
- 数据库连接相关信息转换成配置
- 数据库SQL映射需要添加@Mapper被容器识别到
- MySQL 8.X驱动强制要求设置时区
四、整合MyBatis-Plus
导入对应的依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
配置数据源相关信息
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/bookmanager?serverTimezone=Asia/Shanghai
username: "root"
password: "root"
映射接口(Dao)
实体类还是Book
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
测试类
@SpringBootTest
class Springboot02MybatisPlusApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
Book book = bookDao.selectById(1);
System.out.println(book);
}
}
运行结果也是正确的!
总结
- 手工添加MyBatis-Plus对应的starter
- 数据层接口使用BaseMapper简化开发
- 需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标
五、整合Druid
使用SpringBoot整合了3个技术了,发现套路基本相同,导入对应的starter,然后做配置,各位小伙伴需要一直强化这套思想。下面再整合一个技术,继续深入强化此思想。
前面整合MyBatis和MyBatisPlus的时候,使用的数据源对象都是SpringBoot默认的数据源对象,下面我们手工控制一下,自己指定了一个数据源对象:Druid
导入需要的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
修改配置
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/bookmanager?serverTimezone=Asia/Shanghai
username: "root"
password: "root"
这是我们做的第4个技术的整合方案,还是那两句话:导入对应starter,使用对应配置。没了,SpringBoot整合其他技术就这么简单粗暴。
总结
- 整合Druid需要导入Druid对应的starter
- 根据Druid提供的配置方式进行配置
六、总结
以上就是基于SpringBoot实现技术整合的全部内容了,我们要深入理解使用什么技术就需要导入需要的依赖的思想,博主正在更新springboot多环境开发的文章,喜欢的话,支持支持博主吧~~
- 点赞
- 收藏
- 关注作者
评论(0)