Spring Boot技术概要
Java和Spring是Spring Boot的基石
Spring Boot特点
- 简单的依赖管理
- 自动配置
- 嵌入式的Servlet容器支持
Spring Boot涉及的主要技术
- 基础技术:常用注解、配置文件、Actuator、AOP、Interceptor、Filter等
- Maven:通过pom.xml配置快速引入依赖包,快速构建与发布
- 集成数据访问组件:MyBatis及MyBatis plus集成与使用
- 集成缓存:EhCache、Redis缓存工具使用
- Swagger:提供可阅读了后端接口
- Git:IDE中集成进行代码管理
- Tomcat:项目发布到Tomcat
- Nginx:项目在Linux运行并通过Nginx反射代理出去
实战:构建一个基于【用户】CRUD的后端服务
需求
包括用户信息的CRUD(创建、检索/查询、修改、删除)和根据ID获取
实现效果图
创建一个Spring Boot应用
基础要求
- JDK:Java开发工具包,是所有Java开发或项目运行的基础
- IntelliJ IDEA:一个进行Java项目开发的集成开发环境,也可以使用Eclipse
创建步骤
- File菜单中选择New Project
- 在菜单中选择Spring Initializr,选择本地安装的JDK,Server URL使用Default
- 按照指引,一步一步完成即可创建一个Spring Boot应用,具体如图示
- 本地运行测试,在入口的main方法所在类右键Run…或Debug…即可
Spring Boot项目结构
- src:源文件和测试文件目录
- src/main:源文件目录
- src/main/java:源代码目录,所有的开发源代码的包、类、接口等其他内容都在些目录规划
- main方法入口类:在src/main/java目录中,一般其他源代码都在此类所在包的子包中
- src/main/resources:配置及资源目录,所有的开发配置资源都在此目录规划,比较常用的有application.properties/application.yaml
- src/test目录:测试文件目录
- application.properties:项目的主要配置,包括项目名称、端口、第三方工具的配置参数等pom.xml:项目信息、依赖配置、构建相关信息配置
开发用户接口及逻辑
开发步骤
- 定义包层次,分别添加子包entity、config、controller,分别对应为实体类、数据配置和接口控制器对就存放的包
- 在entity包下定义UserEntity实体类,包含id、用户名、密码、姓名、性别和描述属性
- 在config包下定义UserConfig数据配置类,用于存储临时数据,模拟数据库
- 在controller包下定义UserController接口控制器,提供一个用户相关操作的接口,包括新增、修改、删除、查询、根据ID获取
集成Swagger
概述
- 所有的交互性的接口,都需要文档化支持,而且最好是可视化的
- 文档化支持的过程,会耗费大量的开发时间
- Swagger为各类语言提供快速生成REST API文档的能力,其一般处理方式是
- 将REST API接口生成指定格式的Swagger JSON
- 使用Swagger UI解析Swagger JSON,图形化展示项目接口
- 同时,提供调用支持
集成步骤
- 添加依赖,在pom.xml中添加对springfox-swagger2和springfox-swagger-ui的依赖;注意Spring Boot版本使用2.5.2(新的2.6.0版本还有支持性问题)
- 添加配置类,类标注@EnableSwagger2和@Configuration注解,并返回Docket类型的Bean对象
- 给接口添加描述【可选】,在RestController和相应的返回实体添加注解,用于生成Swagger JSON,常用的Swagger注解有
- @Api,修饰RestController类,描述类信息
- @ApiOperation,修饰在请求方法上,描述当前接口信息
- @ApiModel,修饰请求方法的输入/输出类上,描述模型信息
- 查看并调用,通过/swagger-ui.html查看接口定义,并进行调用测试
还要学些什么…
- 这只是一个简单的基于Spring Boot的快速构建后端接口项目的示例
- 如果要使用Spring Boot搭建一个功能更完善的后端项目,还有很多工作要做,需要学习相应的技术
需要学习的技术
- 掌握一些Java高阶的编程知识,比如IO、多线程、注解、Lambda等
- 集成数据访问,将数据落地到数据库
- 集成缓存,使项目提供更加高效的服务
- 基于接口的认证与授权,要掌握Interceptor、Filter等技术
- 代码的合理规划与分层,如下图1
- 项目打包与部署,如下图2
- …
【示例项目见附件】
欢迎来到testingpai.com!
注册 关于