SpringBoot入门
简介
springboot是spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。在以往我们通过SpringMVC+Spring+Mybatis框架进行开发的时候,我们需要配置web.xml,spring配置,mybatis配置,然后整合在一起,而springboot抛弃了繁琐的xml配置过程,采用大量默认的配置来简化我们的spring开发过程。
SpringBoot化繁为简,使开发变得更加的简单迅速。
特性
- 能够快速创建基于spring的程序
- 能够直接使用Java main方法启动内嵌的Tomcat服务器运行springboot程序,不需要部署war包
- 提供约定的starter POM来简化Maven配置,让Maven的配置变得简单
- 自动化配置,根据项目的Maven依赖配置,springboot自动配置spring、springmvc等
- 提供了程序的健康检查功能
- 基本可以完全不使用xml配合文件,采用注解配置
四大核心
自动配置、起步依赖、Actuator、命令行界面
依赖管理
- dependencyManagement标签的作用:依赖管理
- dependency:依赖
- Management:管理
- 它只负责对jar版本进行管理,不负责导入依赖的jar包,在我们项目中添加依赖的时候就不需要再写版本号了,但是如果自己又写了版本号,就会覆盖它默认的版本号!
- SpringBoot里面提供了很多个starter(启动器),其本质就是一个项目包,在这个项目包中依赖了其他包,而我们项目中只需要依赖这个starter包,maven就会自动去依赖这个starter包所有依赖的其他包了(变成简介依赖)
- starter-web:就是对SpringMVC所需的所有jar包进行了封装,导入starter-web包,就相当于导入了SpringMVC所需的所有jar包。
自动配置原理
核心在启动类上面添加的@SpringBootApplication注解
@SpringBootApplication注解是一个组合注解,包含了:
-
@SpringBootConfiguration
-
@Configuration:表示当前启动类可以作为一个配置类,里面可以写@Bean来配置bean(等同于xml中的一个bean标签)
-
-
@EnableAutoConfiguration
-
@AutoConfigurationPackage
-
@Import(AutoConfigurationPackages.Registrar.class):自动递归扫描启动类所在的包
-
-
@Import(AutoConfigurationImportSelector.class):手动配置除自动扫描的bean以外的其他bean
-
-
@ComponentScan:扫描启动类所在包以外的其他包
核心配置文件格式
(1).properties 文件(默认采用该文件)
通过修改 application.properties 配置文件,修改默认 tomcat 端口号及项目上下文件根
(2) .yml 文件 :
项目名称:004-springboot-yml
yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。它能够直观的被计算机识别数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比 xml 简洁很多,值与前面的冒号配置项必须要有一个空格, yml 后缀也可以使用 yaml 后缀 。
(3)多环境配置(.properties方式)
在实际开发的过程中,我们的项目会经历很多的阶段(开发->测试->上线),每个阶段
的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了方便在不同的环境
之间切换,SpringBoot 提供了多环境配置
SpringBoot整合Junit和Mybatis
1)添加starter-mybatis启动器的依赖
2)配置数据库连接信息
3)配置mybatis的别名和映射文件
4)编写mapper接口和xml
5)启动类+@MapperScan注解
6)单元测试
SpringBoot集成MybatisPlus和Swagger
集成MybatisPlus
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
划重点:mybaits-plus是对mybatis的增强,在mybatis-plus中也可以使用mybatis的功能
-
创建maven项目
-
导入SpringBoot起步依赖和项目所需依赖
-
配置application.yml
-
entity实体类
-
删除*Mapper.xml,创建Mapper接口
-
Service接口和实现类
-
Contrller代码
Mybatis-plus代码生成器
- 导入依赖
- 在启动引导类同包下创建代码生成器类CodeGenerator
- 启动CodeGenerator类中的main方法,根据控制台提示输入要处理表格的名字。
- 成功生成后找到mapper包下的接口,在其加上@Mapper
- 插件推荐MybatisPlus
Mybatis-plus分页
-
config包下配置mybatis-plus分页插件(分页查询需要)
- Controller中分页实现
整合Swagger
Swagger简介:
- Swagger 可以较好的解决接口文档的交互问题,以一套标准的规范定义接口以及相关的信息,就能做到生成各种格式的接口文档,生成多种语言和客户端和服务端的代码,以及在线接口调试页面等等。只需要更新 Swagger 描述文件,就能自动生成接口文档,做到前端、后端联调接口文档的及时性和便利性。
- Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
Swagger优势:
-
支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便,可以节约写文档的时间去学习新技术。
-
提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口。
1、pom.xml的properties便签中加入以下代码
<properties>
<swagger.version>3.0.0</swagger.version>
</properties>
2、在pom.xml的dependencies标签中添加Swagger依赖
3、在cn.edu.cqie包下创建config包,在config包下添加Swagger配置类
Swagger使用的注解及其说明:
@Api:用在类上,说明该类的作用。
@ApiOperation:注解来给API增加方法说明。
@ApiParam:定义在参数上
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息 l code:数字,例如400 l message:信息,例如"请求参数没填好" l response:抛出异常的类
@ApiModel:描述一个Model的信息