本章内容为SpringBoot +JUnit+spring+springMvc+mybatis+mybatis-plus+Druid 整合,该整合项目也是我们日常代码生产过程中最长用的代码部分
springBoot项目在创建时就为我们创建好了相关依赖,我们只需要使用就好
org.springframework.boot
spring-boot-starter-test
test
@SpringBootTest
class SpringbootJunitApplicationTests {
@Autowired
private BookService bookService;
@Test
public void testSave(){
bookService.save();
}
}
名称:@SpringBootTest
类型:测试类注解
位置:测试类定义上方
作用:设置JUnit加载的SpringBoot启动类
范例:
@SpringBootTest
class Springboot05JUnitApplicationTests {}
1:导入测试对应的starter
2: 测试类使用@SpringBootTest修饰
3: 使用自动装配的形式添加要测试的对象
名称:@SpringBootTest
类型:测试类注解
位置:测试类定义上方
作用:设置JUnit加载的SpringBoot启动类
范例:
相关属性
@SpringBootTest(classes = Application.class)
或者
@SpringBootTest
@ContextConfiguration(classes = Application.class)
import org.springframework.test.context.ContextConfiguration;
@SpringBootTest
@ContextConfiguration(classes = Application.class)
class SpringbootTest {
@Test
void contextLoads() {
System.out.println("test running...");
}
}
如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定
我们要做的事情主要有两个:
1:核心配置:数据库连接相关信息(连什么?连谁?什么权限)
2:映射配置:SQL映射(XML/注解)
设置数据源配置 在application.yml中
spring:
datasource:
driver-class-name: com.mysql.cj.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数据库端配置时区解决此问题
1.2:springboot 整合mybatis
1.2.1:定义数据层接口与配置
@Mapper
public interface UserMapper {
@Select("select * from user")
public List getAll();
}
1.2.2:测试类中注入测试接口
@SpringBootTest
class SpringbootApplication {
@Autowired
private UserMapper userMapper ;
@Test
public void testGetById() {
System.out.println(bookMapper.getAll());
}
}
1. 勾选MyBatis技术,也就是导入MyBatis对应的starter
2. 数据库连接相关信息转换成配置
3. 数据库SQL映射需要添加@Mapper被容器识别到
在实际开发过程当中我们一般都会使用到mp(MyBatis-Plus) 来快速开发项目
那么我们该如何整合呢?
1.1: 导入坐标
MyBatis-Plus与MyBatis区别
导入坐标不同
数据层实现简化
com.baomidou
mybatis-plus-boot-starter
3.4.3
由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version
定义数据层接口与映射配置,继承BaseMapper
@Mapper
public interface UserDao extends BaseMapper {
}
其他和mybatis 相同,只不过继承BaseMapper 就可以使用mp中人家给咱们写好的很多方法,不用再重复造轮子了
1. 手工添加MyBatis-Plus对应的starter
2. 数据层接口使用BaseMapper简化开发
3. 需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标
com.alibaba
druid-spring-boot-starter
1.2.6
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
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
username: root
password: root
1. 整合Druid需要导入Druid对应的starter
2. 根据Druid提供的配置方式进行配置
3. 整合第三方技术通用方式
导入对应的starter
根据提供的配置格式,配置非默认值对应的配置项
实体类开发————使用Lombok快速制作实体类
Dao开发————整合MyBatisPlus,制作数据层测试类
Service开发————基于MyBatisPlus进行增量开发,制作业务层测试类
Controller开发————基于Restful开发,使用PostMan测试接口功能
Controller开发————前后端开发协议制作
页面开发————基于VUE+ElementUI制作,前后端联调,页面数据处理,页面消息处理
列表、新增、修改、删除、分页、查询
项目异常处理
按条件查询————页面功能调整、Controller修正功能、Service修正功能
项目地址:https://gitee.com/heyutingfeng/springboot_ssmp.git