本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.后端项目设置PageUtils封装分页数据,必要时返回给前端。PageUtils类里面有相关的变量用来保存“总页数、“总记录”、“当前页数”、“分页记录”等数据。我们在写Service层代码的时候,遇到要返回分页结果的时候,我们返回PageUtils对象即可。
2.封装返回给前端的数据为R类。在前后端分离的架构中,后端返回给前端的数据是JSON格式的,我们不限制具体业务数据的内容,但是JSON内部的属性咱们要统一,比如某个属性是状态码,某个属性是异常信息,某个属性是分页数据。在项目中我创建了R类用来封装返回给前端的数据,也就是说,所有Controller中的Web方法都统一返回R对象,业务数据也好,异常信息也罢,都往R对象里面存放。
3.而且Jetty本身的IO就是非阻塞式的,所以在高并发的WebSocket环境下,Jetty比Tomcat更加适合。在pom.xml中添加jetty依赖。剔除掉SpringBoot捆绑的Tomcat
4.默认情况下,SpringBoot项目的配置文件是properties文件,你要把这个文件改成yml文件。
5.在pom.xml文件中引入druid连接池依赖。因为阿里的Druid连接池成熟稳定,所以建议大家使用这款连接池。同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,可以说是目前最好的连接池之一。
6.利用mybatis-generator插件,将所有以tb_开头的数据表,生成pojo类、dao接口和XML文件。然后在pom.xml文件中,添加配置信息,并且还要注意包名的路径。
7.在前后端分离的架构中,后端返回给移动端或者前端的数据最好能有固定的格式,因此定义R类。Controller中所有的Web方法返回的结果都是R对象了。
8.淘汰了Swagger,用上了SpringDoc组件。用于后端测试
9.使用Sa-Token的权限验证与授权。过程与Shiro非常类似,其更加简单,直接跟JWT融合在了一起。我们写少量的代码就能把Sa-Token整合到SpringBoot项目中。
10.我们用注解的方式判定用户是否为特定的角色或者拥有某些权限。Sa-Token框架为我们提供了这样的注解。
11.@SaCheckPermission或者@SaCheckRole注解拦截HTTP请求的时候,会调用特定的Java类来获取用户的权限和角色信息,然后跟注解要求的权限或者角色做匹配,如果能匹配上,就允许HTTP请求调用Web方法,否则就拒绝HTTP请求。
12.在com.example.emos.api.config包中创建StpInterfaceImpl.java类,这个Java类就是Sa-Token框架拦截HTTP请求之后调用的类。
13.自定义异常类emosApplication,在本项目中遇到的异常,都应该集中处理。SpringBoot提供了集中处理异常的功能,这里我们要加以利用。
14.Java语言是同步执行的,一句代码没执行完,绝不会执行下一句代码。
15.为什么要给Java语言增添异步执行?其实很简单,在一个业务流程中,有时候会有一些耗费时间的分支任务,如果把这些琐碎且不重要的任务用异步来执行,那么就可以减轻当前线程的执行压力。
16.为了把任务分配给其他线程,我们首先要配置一个线程池出来。在com.example.emos.api.config包中创建ThreadPoolConfig.java类。
17.实现XSS内容转义:防御XSS攻击,
18.创建分页数据封装类PageUtils。