From 854774a1f118340833f659900296e57bf947bfb5 Mon Sep 17 00:00:00 2001
From: click33 <2393584716@qq.com>
Date: Wed, 22 Sep 2021 10:17:14 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B7=AF=E7=94=B1=E9=89=B4?=
=?UTF-8?q?=E6=9D=83=E6=96=87=E6=A1=A3=E7=A4=BA=E4=BE=8B=E9=94=99=E8=AF=AF?=
=?UTF-8?q?=E4=B9=8B=E5=A4=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sa-token-doc/doc/more/common-questions.md | 9 +++++----
sa-token-doc/doc/use/route-check.md | 9 ++++-----
sa-token-doc/index.html | 3 +++
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/sa-token-doc/doc/more/common-questions.md b/sa-token-doc/doc/more/common-questions.md
index d5a493ba..35cba865 100644
--- a/sa-token-doc/doc/more/common-questions.md
+++ b/sa-token-doc/doc/more/common-questions.md
@@ -10,10 +10,11 @@
### 报错:非Web上下文无法获取Request?
报错原因:Sa-Token 的部分 API 只能在 Web 上下文中调用,报这个错说明你调用 Sa-Token 的地方不在 Web 上下文中,请排查:
-1. 在 main 在方法中调用了 Sa-Token 的API
-2. 在带有 `@Async` 注解的方法中调用了 Sa-Token 的API
-3. 在一些丢失web上下文的子线程中调用了 Sa-Token 的API,例如 `MyBatis-Plus` 的 `insertFill` 自动填充
-4. 在一些非 Http 协议的 RPC 框架中(例如 Dubbo)调用了 Sa-Token 的API
+1. 是否在 main 方法中调用了 Sa-Token 的API
+2. 是否在带有 `@Async` 注解的方法中调用了 Sa-Token 的API
+3. 是否在一些丢失web上下文的子线程中调用了 Sa-Token 的API,例如 `MyBatis-Plus` 的 `insertFill` 自动填充
+4. 是否在一些非 Http 协议的 RPC 框架中(例如 Dubbo)调用了 Sa-Token 的API
+5. 是否在 SpringBoot 启动初始化的方法中调用了 Sa-Token 的API,例如`@PostConstruct`
解决方案:先获取你想要的值,再把这个值当做一个参数传递到这些方法中,而不是直接从方法内调用 Sa-Token 的API。
diff --git a/sa-token-doc/doc/use/route-check.md b/sa-token-doc/doc/use/route-check.md
index 6270d41f..ee532e36 100644
--- a/sa-token-doc/doc/use/route-check.md
+++ b/sa-token-doc/doc/use/route-check.md
@@ -103,10 +103,6 @@ public class SaTokenConfigure implements WebMvcConfigurer {
使用 `SaRouter.stop()` 可以提前退出匹配链,例:
``` java
-// 原写法
-registry.addInterceptor(SaRouteInterceptor.createPermissionVal("user")).addPathPatterns("/user/**");
-
-// 改为以下方式,效果同上
registry.addInterceptor(new SaRouteInterceptor((req, res, handler) -> {
SaRouter.match("/**", () -> System.out.println("进入1"));
SaRouter.match("/**", () -> {System.out.println("进入2"); SaRouter.stop();});
@@ -115,11 +111,14 @@ registry.addInterceptor(new SaRouteInterceptor((req, res, handler) -> {
```
如上示例,代码运行至第2条匹配链时,会在stop函数处提前退出整个匹配函数,从而忽略掉剩余的所有match匹配
-除了`stop()`函数,`SaRouter`还提供了 `SaRouter.back()` 函数,用于:停止匹配,结束执行,直接向前端返回结果
+除了`stop()`函数,`SaRouter`还提供了 `back()` 函数,用于:停止匹配,结束执行,直接向前端返回结果
``` java
SaRouter.match("/user/back", () -> SaRouter.back("执行back函数后将停止匹配,也不会进入Controller,而是直接将此参数作为返回值输出到前端"));
```
+`stop()` 与 `back()` 函数的区别在于:
+- `SaRouter.stop()` 会停止匹配,进入Controller。
+- `SaRouter.back()` 会停止匹配,直接返回结果到前端。
diff --git a/sa-token-doc/index.html b/sa-token-doc/index.html
index d0a4fecd..683146b9 100644
--- a/sa-token-doc/index.html
+++ b/sa-token-doc/index.html
@@ -251,6 +251,9 @@
+
+
+