【SpringBoot2.X】SpringBoot学习总结一

时间:2022-05-27 09:43:31

 

本文为慕课网《2019版 SpringBoot2.x 打造企业级微信点餐系统》的学习笔记总结一,以备日后回顾

该课程地址:https://coding.imooc.com/class/117.html

 

1. 课程技术栈:以SpringBoot和微信特性为核心技术栈

后端技术包括:SpringBoot2.x、JPA、MyBatis、Freemarker、WebSocket、基于Redis实现的缓存、分布式Session、分布式锁

微信特性包括:微信扫码登录(需要企业资质账号)、微信网页授权(微信公众号开发测试帐号即可,需要使用到内网穿透工具)、微信支付与退款(需要企业资质账号)

软件版本:SpringBoot2.1.4、JDK1.8

开发项目之前,需要对项目进行详细的分析设计————分角色、功能模块、部署架构、数据库表等多个维度进行分析与设计!!!

2. 新建SpringBoot项目时,通过“Spring Initializr”创建,之后可以一路next完成,在需要相关jar包时到pom中引入即可。

【SpringBoot2.X】SpringBoot学习总结一

 

使用某个jar包的常用套路:pom在引入依赖--> application.yml中配置 --> 代码中使用

 

3. pom中引入的常用jar包

spring-boot-starter-* 起步依赖:是SpringBoot核心之处,它提供了Spring和相关技术的一站式服务,让开发者不再关心Spring相关配置,简化了传统的依赖注入操作过程。

日志: slf4j+logback

Lombok:Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写

 

4. 配置文件

application.yml:通过该配置文件进行项目的统一配置和管理。注意:这个文件中只能配置简单的日志

logback-spring.xml:可以配置复杂日志。在resources文件夹下创建logback-spring.xml文件,并在其中配置日志输出格式及内容,springBoot将自动读取该配置文件

5. 设计与开发顺序

   API文档  -->  实体类 --> DAO层(Dao接口、单元测试)--> Service层(Service接口及其实现类、单元测试)--> Controller层

   单元测试贯穿Dao层和Service层开发

6. 基于JPA的实体类开发

    创建实体类时,类名和属性名都采用驼峰命名法,Jpa会自动转换;并为实体类添加@Entity注解;自增主键添加 @GeneratedValue(strategy = GenerationType.IDENTITY) 注解,否则会报‘关系 "hibernate_sequence" 不存在‘ 的错误;注意@DynamicInsert()、@DynamicUpdate()

【SpringBoot2.X】SpringBoot学习总结一

7. 基于JPA的Dao层开发

    创建dao层接口时,继承自JpaRepository接口

【SpringBoot2.X】SpringBoot学习总结一

8. 单元测试中加上@Transactional注解后会执行回滚,以保持数据库表数据的干净

9. 编写Service接口及其实现类。

  • 所有的业务逻辑都放到Service层实现

【SpringBoot2.X】SpringBoot学习总结一

10. DTO:数据传输对象,专门用于在各层之间传输数据

  • 在各层之间传输数据最好使用DTO对象

 【SpringBoot2.X】SpringBoot学习总结一

 11. API文档与统一的返回格式VO

a. 代码未动,文档先行

【SpringBoot2.X】SpringBoot学习总结一

b. 返回给前端的包——VO

c. 统一创建返回给前端的对象:ResultVO,只返回前端需要的字段,原则上不直接返回实体类因出于信息安全考虑

【SpringBoot2.X】SpringBoot学习总结一

 

【SpringBoot2.X】SpringBoot学习总结一

 12. 表单校验

【SpringBoot2.X】SpringBoot学习总结一

【SpringBoot2.X】SpringBoot学习总结一

 13.使用freemarker时,Controller需要返回ModelAndView对象

 14. 自定义几个异常类(需继承自RuntimeException),开发全程如果出现异常则直接抛出异常而无需处理,最后统一进行全局异常处理

【SpringBoot2.X】SpringBoot学习总结一