SpringBoot2笔记

本文介绍SpringBoot2的基础配置与内置服务器选择,深入探讨YAML配置及属性读取方法。同时,文章还介绍了如何整合JUnit、MyBatis、MyBatis-Plus及Druid,并提供了一个基于SpringBoot的SSMP整合案例。

SpringBoot的简介

SpringBoot的基础配置

在这里插入图片描述SpringBoot对于程序的一些优缺点

1、SpringBoot (parent、starter的区别以及引导类

starter是一个坐标中定了若干个坐标,以前写多个的,现在写一个,是用来减少依赖配置的书写量的
​parent是定义了几百个依赖版本号,以前写依赖需要自己手工控制版本,现在由SpringBoot统一管理,这样就不存在版本冲突了,是用来减少依赖冲突的
引导类SpringBoot工程创建时自带的那个类了,带有main方法的那个类,运行这个类就可以启动SpringBoot工程的运行

引导类上方有一个SpringBootConfiguration和ComponentScan:
Spring Boot Configuration:里面又有Configuration这个注解,所以归根结底还是一个配置类。
ComponentScan:他就是对于这个引导类同包下面进行一个扫描,将里面的所有东西都配置到容器里面。

2、SpringBoot内置服务器(Tomcat(默认)、jetty、undertow)

在这里插入图片描述在Maven配置当中,直接在starter-web的以来下面利用exclusions来排除默认的tomcat,然后用常用的依赖引入方式来添加你想要的服务器。
在这里插入图片描述


3、ApplicationProperties里面的值


application.properties里面都是键值对方式存储的数据。


4、Springboot提供了三种不同的属性配置方式

在这里插入图片描述
三个不同配置方式的优先级:properties > yml >yaml,不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留。最常用的还是yml格式


5、如果自己定义的配置文件,自动提示功能消失的话:

在这里插入图片描述
则需要自己手动将手写的配置文件加到springboot的配置文件里面去。


6、yaml数据格式

在这里插入图片描述

yaml的语法规范

在这里插入图片描述yaml数组的格式
在这里插入图片描述

yaml字面值表示方式

在这里插入图片描述

7、读取yaml的单一属性数据

在这里插入图片描述
在这里插入图片描述
常用在多个属性有相同字段的时候提取出来,方便统一更改使用。在yaml文件内可以直接用SpEl格式去进行引用
在这里插入图片描述

如果是需要将配置中的所有数据封装到一个对象里,可以用Environment类型对象中,@Autowired自动装配就好
在这里插入图片描述

8、自定义对象封装指定数据

使用@ConfigurationProperties这个注解来指定前缀,决定要封装进对象的数据是哪个
封装的类也需要交给spring进行管理,否则无法进行属性注入

在这里插入图片描述


SpringBoot整合第三方技术

1、整合JUnit

Springboot本身在创建项目的时候就是默认带有JUnit测试依赖的,并且test也写好了。
在这里插入图片描述

在这里插入图片描述

如果测试类和引导类不在同一个包下,那么测试类运行就会报错,解决这个的方法就是在测试类上的@SpringBootTest注解后面加上(classes = 引导类的)在这里插入图片描述

2、整合MyBatis

在这里插入图片描述
只需要在yml文件内,写入spring:datasource下的各种配置,SpringBoot就会自动帮你进行数据库的配置了。

因为SpringBoot自动选择的就是MySQL8的版本,所以需要注意驱动和时区的设置

整合MyBatis-Plus

在这里插入图片描述
在这里插入图片描述

整合Druid

在这里插入图片描述
将原有的datasource的数据源,放在druid的数据池下。
在这里插入图片描述
最主要的就是第三条,对于以后的任何一个第三方的技术,都是这样子的一个整合方法。


基于SpringBoot的SSMP整合案例

1、Lombok的实用开发

包括@AllArgsConstructor(有参构造方法)和@NoArgsConstructor(无参构造方法)在这里插入图片描述

2、实际开发中遇到MP的一些问题

table-prefix:配置表的前缀,让MP可以不去自动拼接表名
id-type:把MP中insert的id自增的方法又原本MP自己的雪花算法改为数据库的ID自增。
在这里插入图片描述
打开MP的日志功能,就会看到MP的执行过程,包括sql语句的内容。
在这里插入图片描述

3、MP的分页功能

MP的分页查询需要通过一个配置类来生成一个拦截器,它的limit关键字才能拼接上去,达到分页的效果。
在这里插入图片描述

首先需要用IPage去定义一个分页的对象,然后将当前页和分页大小传进去。最后selectPage的返回值也是IPage类型的,其实也就是这个page,去查询他的数据就好了。
在这里插入图片描述
在这里插入图片描述

4、条件查询

定义QueryWrapper或者LamdaQueryWrapper对象,来进行条件参数的设置。
在这里插入图片描述
在这里插入图片描述
使用Query Wrapper对象去封装查询条件,推荐使用LamdaQueryWrapper对象,它只是一些Lamda表达式的一些取值,所有的方法都封装成了方法调用,查询条件支持动态条件拼装。

5、业务层根据MP提供的接口和实现类进行快速开发

在这里插入图片描述
接口的开发,继承IService<泛型>,也可以对于它原本自带的方法进行一个重载,或者自己定义一个跟它不冲突的方法实现自己所要的功能。
在这里插入图片描述
实现类需要先继承ServiceImpl<实现类,模型类>,然后实现IBook Service接口就好了。

6、表现层的开发

在这里插入图片描述

添加(PostMapping)修改(PutMapping): 在参数前面加上一个@RequestBody的注解,让上游传过来的参数转换成你想要的格式类型。

修改(DeleteMapping): 在注解的后面加上一个取值参数,然后在方法的参数前面加上一个@PathVariable的注解来将请求参数赋值给方法的形参。

在这里插入图片描述
查询(GetMapping):
查询单个也是需要拿到请求的参数,所以也需要赋值给方法的形参。
查询所有的话没有参数,所以不需要传参。
分页查询需要参数,并且分页对象中封装有分页的所有相关信息,records里面存的就是你需要查询的内容。

7、表现层消息一致处理

在这里插入图片描述
我们在用不同的方法操作完数据库之后,它的返回值都是不一样的,那么前端对于我们返回的不同格式的消息进行处理。

在这里插入图片描述
那么我们在返回给前端数据的时候,就将格式进行统一,flag表示操作是否成功,data里面用来装返回过去的数据。

在这里插入图片描述

定义一个返回结果的模型类(实现返回结果的格式统一)
在这里插入图片描述


在这里插入图片描述
然后把所有的返回给前端的数据都改成定义好的规则模型。

在这里插入图片描述
无论是业务操作的成功与失败都有固定的返回格式,那么在后台代码BUG的时候,返回的数据又会不统一。

8、业务消息一致性处理

在这里插入图片描述
在这里插入图片描述
@RestControllerAdvice运用在创建的异常处理类上,@ExceptionHandler运用在你所处理异常的方法上。在处理异常的类里的返回值需要返回给前端,前端进行处理。

9、数据分页展示

在这里插入图片描述
有一个date数据类型,与上面的div相对应。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值