问题总结

1.以任意一个模块,讲述下从前端到后台到数据库,然后再返回的整个流程

答:前端应用通过HTTP协议(通常是GET或POST方法)向后端服务器发送请求。
请求包含请求URL、请求方法、请求头、请求参数等信息。
get请求对应查询 post请求对应创建 put请求对应修改 delete对应删除。

2.Controller接收到请求后,调用相关Service处理业务逻辑。
Mapper层:持久层,主要与数据库交互
Service层:业务层–>控制业务
Controller层:控制层–>调用业务层方法来控制业务逻辑

3.Service调用Mapper层获取数据。

4.Mapper层访问数据库获取数据。

5.数据库返回数据给Mapper层。

6.Mapper层将数据返回给Service层。

7.Service层将处理结果返回给Controller。

8.Controller将结果封装为HTTP响应,返回给前端。

2.权限的设置(@PreAuthorize)

1.使用:在需要进行权限控制的 controller 方法上添加权限控制注解 @PreAuthorize

2.原理:Spring Security提供了Spring EL表达式,允许我们在定义接口访问的方法上面添加注解,来控制访问权限。
以@PreAuthorize("@ss.hasPermi('system:post:list')")为例
使用注解后,对每个接口拦截并调用PermissionService的对应方法判断接口调用者的权限。例子中进行了hasPermi方法进行判断,当权限码或用户身份为空或用户名不存在时返回false。若此SpringEL表达式返回Ture,则校验通过。

3.日志打印(@Log)

1.背景:通常正常记录该操作的内容,一个操作调一次记录方法,会造成大量代码重复。 故使用注解来完成此项功能。
2.使用:在需要被记录日志的controller方法上添加@Log注解。
3.原理:AOP
LogAspect里:
(1)@Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.Log)")确定了每个有对应注解的均为切入点。
(2)@AfterReturning后置通知,异常通知

4.全局的异常捕获器

1.背景:减少try catch代码,避免异常代码大量重复和繁杂。
2.使用:@ControllerAdvice+@ExceptionHandler
异常处理简单解释

额外的问题

1.日志打印

关于日志的详细内容
(1)目的:打印日志的主要目的是为了监测系统状态、方便测试、方便排查问题。
当测试时遇到和预计不符的情况,看日志是解决问题的最常用手段。

(2)等级:无需记录:TRACE
需要记录:DEBUG<INFO<WARN<ERROR

2.异常捕获需要捕获哪种异常

受检查异常

posted @ 2024-02-17 22:48  OIO123  阅读(12)  评论(0)    收藏  举报