diff --git a/mvn clean.bat b/mvn clean.bat
index e3e29515..8d9f857c 100644
--- a/mvn clean.bat	
+++ b/mvn clean.bat	
@@ -1,6 +1,10 @@
 
+:: 整体clean
 call mvn clean
 
+:: demo模块clean
+cd sa-token-demo
+
 cd sa-token-demo-jwt
 call mvn clean
 cd ..
@@ -13,14 +17,17 @@ cd sa-token-demo-webflux
 call mvn clean
 cd ..
 
-cd sa-token-demo-oauth2\sa-token-demo-oauth2-client
+cd sa-token-demo-oauth2-client
 call mvn clean
-cd ../..
+cd ..
 
-cd sa-token-demo-oauth2\sa-token-demo-oauth2-server
+cd sa-token-demo-oauth2-server
 call mvn clean
-cd ../..
+cd ..
 
+cd ..
+
+:: 最后打印
 echo;
 echo;
 echo ----------- clean end ----------- 
diff --git a/pom.xml b/pom.xml
index 02ac347e..417c5ca6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,13 +19,8 @@
 	<!-- 所有模块 -->
 	<modules>
 		<module>sa-token-core</module>
-		<module>sa-token-servlet</module>
-		<module>sa-token-spring-boot-starter</module>
-		<module>sa-token-reactor-spring-boot-starter</module>
-		<module>sa-token-dao-redis</module>
-		<module>sa-token-dao-redis-jackson</module>
-		<module>sa-token-spring-aop</module>
-		<!-- <module>sa-token-oauth2</module> -->
+		<module>sa-token-starter</module>
+		<module>sa-token-plugin</module>
 	</modules>
 	
 	<!-- 开源协议 apache 2.0 -->
diff --git a/sa-token-demo-jwt/.gitignore b/sa-token-demo/.gitignore
similarity index 100%
rename from sa-token-demo-jwt/.gitignore
rename to sa-token-demo/.gitignore
diff --git a/sa-token-demo-jwt/pom.xml b/sa-token-demo/pom.xml
similarity index 100%
rename from sa-token-demo-jwt/pom.xml
rename to sa-token-demo/pom.xml
diff --git a/sa-token-demo-springboot/.gitignore b/sa-token-demo/sa-token-demo-jwt/.gitignore
similarity index 100%
rename from sa-token-demo-springboot/.gitignore
rename to sa-token-demo/sa-token-demo-jwt/.gitignore
diff --git a/sa-token-demo/sa-token-demo-jwt/pom.xml b/sa-token-demo/sa-token-demo-jwt/pom.xml
new file mode 100644
index 00000000..208af28a
--- /dev/null
+++ b/sa-token-demo/sa-token-demo-jwt/pom.xml
@@ -0,0 +1,86 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>cn.dev33</groupId>
+	<artifactId>sa-token-demo-jwt</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	
+	<!-- SpringBoot -->
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>2.0.0.RELEASE</version>
+		<relativePath/>
+	</parent>
+	
+	<!-- 定义sa-token版本号 -->
+	<properties>
+		<sa-token-version>1.18.0</sa-token-version>
+	</properties>
+
+	<dependencies>
+
+		<!-- springboot依赖 -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-aop</artifactId>
+		</dependency>
+		
+		<!-- sa-token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
+		<dependency>
+            <groupId>cn.dev33</groupId>
+            <artifactId>sa-token-spring-boot-starter</artifactId>
+            <version>${sa-token-version}</version>
+        </dependency>
+        
+        <!-- jwt -->
+        <dependency>
+			<groupId>io.jsonwebtoken</groupId>
+			<artifactId>jjwt</artifactId>
+			<version>0.9.1</version>
+        </dependency>
+		
+		<!-- sa-token整合redis (使用jdk默认序列化方式) -->
+		<!-- <dependency>
+            <groupId>cn.dev33</groupId>
+            <artifactId>sa-token-dao-redis</artifactId>
+            <version>${sa-token-version}</version>
+        </dependency> -->
+		
+		<!-- sa-token整合redis (使用jackson序列化方式) -->
+		<!-- <dependency>
+            <groupId>cn.dev33</groupId>
+            <artifactId>sa-token-dao-redis-jackson</artifactId>
+            <version>${sa-token-version}</version>
+        </dependency> -->
+        
+		<!-- 提供redis连接池 -->
+		<!-- <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency> -->
+        
+		<!-- sa-token整合SpringAOP实现注解鉴权 -->
+		<!-- <dependency>
+            <groupId>cn.dev33</groupId>
+            <artifactId>sa-token-spring-aop</artifactId>
+            <version>${sa-token-version}</version>
+        </dependency> -->
+
+		<!-- @ConfigurationProperties -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-configuration-processor</artifactId>
+			<optional>true</optional>
+		</dependency>
+		
+
+	</dependencies>
+	
+	
+</project>
\ No newline at end of file
diff --git a/sa-token-demo-jwt/src/main/java/com/pj/SaTokenJwtDemoApplication.java b/sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/SaTokenJwtDemoApplication.java
similarity index 100%
rename from sa-token-demo-jwt/src/main/java/com/pj/SaTokenJwtDemoApplication.java
rename to sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/SaTokenJwtDemoApplication.java
diff --git a/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java b/sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java
similarity index 100%
rename from sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java
rename to sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java
diff --git a/sa-token-demo-jwt/src/main/java/com/pj/test/GlobalException.java b/sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/test/GlobalException.java
similarity index 100%
rename from sa-token-demo-jwt/src/main/java/com/pj/test/GlobalException.java
rename to sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/test/GlobalException.java
diff --git a/sa-token-demo-jwt/src/main/java/com/pj/test/TestJwtController.java b/sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/test/TestJwtController.java
similarity index 100%
rename from sa-token-demo-jwt/src/main/java/com/pj/test/TestJwtController.java
rename to sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/test/TestJwtController.java
diff --git a/sa-token-demo-jwt/src/main/java/com/pj/util/AjaxJson.java b/sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/util/AjaxJson.java
similarity index 100%
rename from sa-token-demo-jwt/src/main/java/com/pj/util/AjaxJson.java
rename to sa-token-demo/sa-token-demo-jwt/src/main/java/com/pj/util/AjaxJson.java
diff --git a/sa-token-demo-jwt/src/main/resources/application.yml b/sa-token-demo/sa-token-demo-jwt/src/main/resources/application.yml
similarity index 100%
rename from sa-token-demo-jwt/src/main/resources/application.yml
rename to sa-token-demo/sa-token-demo-jwt/src/main/resources/application.yml
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/.gitignore b/sa-token-demo/sa-token-demo-oauth2-client/.gitignore
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/.gitignore
rename to sa-token-demo/sa-token-demo-oauth2-client/.gitignore
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/pom.xml b/sa-token-demo/sa-token-demo-oauth2-client/pom.xml
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/pom.xml
rename to sa-token-demo/sa-token-demo-oauth2-client/pom.xml
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/SaOAuth2ClientApplication.java b/sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/SaOAuth2ClientApplication.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/SaOAuth2ClientApplication.java
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/SaOAuth2ClientApplication.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ClientAccController.java b/sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ClientAccController.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ClientAccController.java
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ClientAccController.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ExceptionHandle.java b/sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ExceptionHandle.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ExceptionHandle.java
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/controller/ExceptionHandle.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/AjaxJson.java b/sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/AjaxJson.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/AjaxJson.java
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/AjaxJson.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/SoMap.java b/sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/SoMap.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/SoMap.java
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/java/com/pj/utils/SoMap.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/resources/application.yml b/sa-token-demo/sa-token-demo-oauth2-client/src/main/resources/application.yml
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/resources/application.yml
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/resources/application.yml
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/resources/static/login.html b/sa-token-demo/sa-token-demo-oauth2-client/src/main/resources/static/login.html
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-client/src/main/resources/static/login.html
rename to sa-token-demo/sa-token-demo-oauth2-client/src/main/resources/static/login.html
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/.gitignore b/sa-token-demo/sa-token-demo-oauth2-server/.gitignore
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/.gitignore
rename to sa-token-demo/sa-token-demo-oauth2-server/.gitignore
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/pom.xml b/sa-token-demo/sa-token-demo-oauth2-server/pom.xml
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/pom.xml
rename to sa-token-demo/sa-token-demo-oauth2-server/pom.xml
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/SaOAuth2ServerApplication.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/SaOAuth2ServerApplication.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/SaOAuth2ServerApplication.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/SaOAuth2ServerApplication.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ExceptionHandle.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ExceptionHandle.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ExceptionHandle.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ExceptionHandle.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/OAuth2Controller.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/OAuth2Controller.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/OAuth2Controller.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/OAuth2Controller.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ServerAccController.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ServerAccController.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ServerAccController.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/controller/ServerAccController.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2InterfaceImpl.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2InterfaceImpl.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2InterfaceImpl.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2InterfaceImpl.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2SpringAutowired.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2SpringAutowired.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2SpringAutowired.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/oauth2/SaOAuth2SpringAutowired.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/AjaxJson.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/AjaxJson.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/AjaxJson.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/AjaxJson.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/SoMap.java b/sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/SoMap.java
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/SoMap.java
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/java/com/pj/utils/SoMap.java
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/resources/application.yml b/sa-token-demo/sa-token-demo-oauth2-server/src/main/resources/application.yml
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/resources/application.yml
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/resources/application.yml
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/resources/static/auth.html b/sa-token-demo/sa-token-demo-oauth2-server/src/main/resources/static/auth.html
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/resources/static/auth.html
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/resources/static/auth.html
diff --git a/sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/resources/static/login.html b/sa-token-demo/sa-token-demo-oauth2-server/src/main/resources/static/login.html
similarity index 100%
rename from sa-token-demo-oauth2/sa-token-demo-oauth2-server/src/main/resources/static/login.html
rename to sa-token-demo/sa-token-demo-oauth2-server/src/main/resources/static/login.html
diff --git a/sa-token-demo-webflux/.gitignore b/sa-token-demo/sa-token-demo-springboot/.gitignore
similarity index 100%
rename from sa-token-demo-webflux/.gitignore
rename to sa-token-demo/sa-token-demo-springboot/.gitignore
diff --git a/sa-token-demo-springboot/pom.xml b/sa-token-demo/sa-token-demo-springboot/pom.xml
similarity index 100%
rename from sa-token-demo-springboot/pom.xml
rename to sa-token-demo/sa-token-demo-springboot/pom.xml
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/satoken/SaTokenConfigure.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/satoken/StpInterfaceImpl.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/satoken/StpInterfaceImpl.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/satoken/StpInterfaceImpl.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/satoken/StpInterfaceImpl.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/GlobalException.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/SSOController.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/SSOController.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/test/SSOController.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/SSOController.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
similarity index 99%
rename from sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
index 7699f9f9..ba3dad35 100644
--- a/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
+++ b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
@@ -241,6 +241,7 @@ public class TestController {
 	@RequestMapping("test")
 	public AjaxJson test() {
 		System.out.println("进来了");
+		System.out.println(StpUtil.getTokenInfo());
 		return AjaxJson.getSuccess("访问成功");
 	}
 	
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/UserController.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/UserController.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/test/UserController.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/test/UserController.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/util/AjaxJson.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/util/AjaxJson.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/util/AjaxJson.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/util/AjaxJson.java
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/util/Ttime.java b/sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/util/Ttime.java
similarity index 100%
rename from sa-token-demo-springboot/src/main/java/com/pj/util/Ttime.java
rename to sa-token-demo/sa-token-demo-springboot/src/main/java/com/pj/util/Ttime.java
diff --git a/sa-token-demo-springboot/src/main/resources/application.yml b/sa-token-demo/sa-token-demo-springboot/src/main/resources/application.yml
similarity index 100%
rename from sa-token-demo-springboot/src/main/resources/application.yml
rename to sa-token-demo/sa-token-demo-springboot/src/main/resources/application.yml
diff --git a/sa-token-demo/sa-token-demo-webflux/.gitignore b/sa-token-demo/sa-token-demo-webflux/.gitignore
new file mode 100644
index 00000000..99a6e767
--- /dev/null
+++ b/sa-token-demo/sa-token-demo-webflux/.gitignore
@@ -0,0 +1,12 @@
+target/
+
+node_modules/
+bin/
+.settings/
+unpackage/
+.classpath
+.project
+
+.idea/
+
+.factorypath
\ No newline at end of file
diff --git a/sa-token-demo-webflux/pom.xml b/sa-token-demo/sa-token-demo-webflux/pom.xml
similarity index 100%
rename from sa-token-demo-webflux/pom.xml
rename to sa-token-demo/sa-token-demo-webflux/pom.xml
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/SaTokenWebfluxDemoApplication.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/SaTokenWebfluxDemoApplication.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/SaTokenWebfluxDemoApplication.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/SaTokenWebfluxDemoApplication.java
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/satoken/SaTokenConfigure.java
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/satoken/StpInterfaceImpl.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/satoken/StpInterfaceImpl.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/satoken/StpInterfaceImpl.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/satoken/StpInterfaceImpl.java
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/test/DefineRoutes.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/test/DefineRoutes.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/test/DefineRoutes.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/test/DefineRoutes.java
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/test/GlobalException.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/test/GlobalException.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/test/GlobalException.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/test/GlobalException.java
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/test/TestController.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/test/TestController.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/test/TestController.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/test/TestController.java
diff --git a/sa-token-demo-webflux/src/main/java/com/pj/util/AjaxJson.java b/sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/util/AjaxJson.java
similarity index 100%
rename from sa-token-demo-webflux/src/main/java/com/pj/util/AjaxJson.java
rename to sa-token-demo/sa-token-demo-webflux/src/main/java/com/pj/util/AjaxJson.java
diff --git a/sa-token-demo-webflux/src/main/resources/application.yml b/sa-token-demo/sa-token-demo-webflux/src/main/resources/application.yml
similarity index 100%
rename from sa-token-demo-webflux/src/main/resources/application.yml
rename to sa-token-demo/sa-token-demo-webflux/src/main/resources/application.yml
diff --git a/sa-token-doc/doc/start/download.md b/sa-token-doc/doc/start/download.md
index 30799db4..e8d34699 100644
--- a/sa-token-doc/doc/start/download.md
+++ b/sa-token-doc/doc/start/download.md
@@ -84,21 +84,23 @@ implementation 'cn.dev33:sa-token-core:1.18.0'
 
 ``` js
 ── sa-token
-	├── sa-token-core                         // sa-token 核心模块
-	├── sa-token-servlet                      // sa-token 整合 Servlet容器实现类包
-	├── sa-token-spring-boot-starter          // sa-token 整合 SpringBoot 快速集成 
-	├── sa-token-reactor-spring-boot-starter  // sa-token 整合 Reactor响应式编程 快速集成 
-	├── sa-token-dao-redis                    // sa-token 整合 Redis (使用jdk默认序列化方式)
-	├── sa-token-dao-redis-jackson            // sa-token 整合 Redis (使用jackson序列化方式)
-	├── sa-token-spring-aop                   // sa-token 整合 SpringAOP 注解鉴权
-	├── sa-token-oauth2                       // sa-token 实现 OAuth2.0 模块(内测暂未发布)
-	├── sa-token-demo-springboot              // [示例] sa-token 整合 SpringBoot 
-	├── sa-token-demo-jwt                     // [示例] sa-token 集成 jwt [示例]
-	├── sa-token-demo-webflux                 // [示例] sa-token 整合 WebFlux [示例]
-	├── sa-token-demo-oauth2                  // [示例] sa-token集成OAuth2.0模块 [示例]
-		├── sa-token-demo-oauth2-client       // [示例] OAuth2.0 客户端
-		├── sa-token-demo-oauth2-server       // [示例] OAuth2.0 服务端
-	├── sa-token-doc                          // [文档] sa-token开发文档 
+	├── sa-token-core                         // [核心] sa-token 核心模块
+	├── sa-token-starter                      // [整合] sa-token 与其它框架整合
+		├── sa-token-servlet                      // [整合] sa-token 整合 Servlet容器实现类包
+		├── sa-token-spring-boot-starter          // [整合] sa-token 整合 SpringBoot 快速集成 
+		├── sa-token-reactor-spring-boot-starter  // [整合] sa-token 整合 Reactor响应式编程 快速集成 
+	├── sa-token-plugin                       // [插件] sa-token 插件合集
+		├── sa-token-dao-redis                    // [插件] sa-token 整合 Redis (使用jdk默认序列化方式)
+		├── sa-token-dao-redis-jackson            // [插件] sa-token 整合 Redis (使用jackson序列化方式)
+		├── sa-token-spring-aop                   // [插件] sa-token 整合 SpringAOP 注解鉴权
+		├── sa-token-oauth2                       // [插件] sa-token 实现 OAuth2.0 模块(内测暂未发布)
+	├── sa-token-demo                         // [示例] sa-token 示例合集
+		├── sa-token-demo-springboot              // [示例] sa-token 整合 SpringBoot 
+		├── sa-token-demo-jwt                     // [示例] sa-token 集成 jwt [示例]
+		├── sa-token-demo-webflux                 // [示例] sa-token 整合 WebFlux [示例]
+		├── sa-token-demo-oauth2-client           // [示例] sa-token 集成 OAuth2.0 (客户端)
+		├── sa-token-demo-oauth2-server           // [示例] sa-token 集成 OAuth2.0 (服务端)
+	├── sa-token-doc                          // [文档] sa-token 开发文档 
 	├──pom.xml
 ```
 
diff --git a/sa-token-plugin/pom.xml b/sa-token-plugin/pom.xml
new file mode 100644
index 00000000..a65f736e
--- /dev/null
+++ b/sa-token-plugin/pom.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+   
+	<parent>
+        <groupId>cn.dev33</groupId>
+        <artifactId>sa-token-parent</artifactId>
+        <version>1.18.0</version>
+    </parent>
+    <packaging>pom</packaging>
+    
+	<name>sa-token-plugin</name>
+    <artifactId>sa-token-plugin</artifactId>
+	<description>sa-token plugins</description>
+	
+    <modules>
+        <module>sa-token-dao-redis</module>
+        <module>sa-token-dao-redis-jackson</module>
+        <module>sa-token-oauth2</module>
+        <module>sa-token-spring-aop</module>
+    </modules>
+
+</project>
\ No newline at end of file
diff --git a/sa-token-dao-redis-jackson/.gitignore b/sa-token-plugin/sa-token-dao-redis-jackson/.gitignore
similarity index 100%
rename from sa-token-dao-redis-jackson/.gitignore
rename to sa-token-plugin/sa-token-dao-redis-jackson/.gitignore
diff --git a/sa-token-dao-redis-jackson/pom.xml b/sa-token-plugin/sa-token-dao-redis-jackson/pom.xml
similarity index 96%
rename from sa-token-dao-redis-jackson/pom.xml
rename to sa-token-plugin/sa-token-dao-redis-jackson/pom.xml
index ff95a103..ffa20c36 100644
--- a/sa-token-dao-redis-jackson/pom.xml
+++ b/sa-token-plugin/sa-token-dao-redis-jackson/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-plugin</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
similarity index 100%
rename from sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
rename to sa-token-plugin/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
diff --git a/sa-token-dao-redis-jackson/src/main/resources/META-INF/spring.factories b/sa-token-plugin/sa-token-dao-redis-jackson/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from sa-token-dao-redis-jackson/src/main/resources/META-INF/spring.factories
rename to sa-token-plugin/sa-token-dao-redis-jackson/src/main/resources/META-INF/spring.factories
diff --git a/sa-token-dao-redis/.gitignore b/sa-token-plugin/sa-token-dao-redis/.gitignore
similarity index 100%
rename from sa-token-dao-redis/.gitignore
rename to sa-token-plugin/sa-token-dao-redis/.gitignore
diff --git a/sa-token-dao-redis/pom.xml b/sa-token-plugin/sa-token-dao-redis/pom.xml
similarity index 95%
rename from sa-token-dao-redis/pom.xml
rename to sa-token-plugin/sa-token-dao-redis/pom.xml
index 28da9c4a..e556a054 100644
--- a/sa-token-dao-redis/pom.xml
+++ b/sa-token-plugin/sa-token-dao-redis/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-plugin</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java b/sa-token-plugin/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
similarity index 100%
rename from sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
rename to sa-token-plugin/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
diff --git a/sa-token-dao-redis/src/main/resources/META-INF/spring.factories b/sa-token-plugin/sa-token-dao-redis/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from sa-token-dao-redis/src/main/resources/META-INF/spring.factories
rename to sa-token-plugin/sa-token-dao-redis/src/main/resources/META-INF/spring.factories
diff --git a/sa-token-oauth2/.gitignore b/sa-token-plugin/sa-token-oauth2/.gitignore
similarity index 100%
rename from sa-token-oauth2/.gitignore
rename to sa-token-plugin/sa-token-oauth2/.gitignore
diff --git a/sa-token-oauth2/README.md b/sa-token-plugin/sa-token-oauth2/README.md
similarity index 100%
rename from sa-token-oauth2/README.md
rename to sa-token-plugin/sa-token-oauth2/README.md
diff --git a/sa-token-oauth2/pom.xml b/sa-token-plugin/sa-token-oauth2/pom.xml
similarity index 94%
rename from sa-token-oauth2/pom.xml
rename to sa-token-plugin/sa-token-oauth2/pom.xml
index 0da868c4..2f825366 100644
--- a/sa-token-oauth2/pom.xml
+++ b/sa-token-plugin/sa-token-oauth2/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-plugin</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/SaOAuth2Manager.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/SaOAuth2Manager.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/SaOAuth2Manager.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/SaOAuth2Manager.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/config/SaOAuth2Config.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/config/SaOAuth2Config.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/config/SaOAuth2Config.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/config/SaOAuth2Config.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Interface.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2InterfaceDefaultImpl.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2InterfaceDefaultImpl.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2InterfaceDefaultImpl.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2InterfaceDefaultImpl.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/logic/SaOAuth2Util.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/AccessTokenModel.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/AccessTokenModel.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/AccessTokenModel.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/AccessTokenModel.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/CodeModel.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/CodeModel.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/CodeModel.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/CodeModel.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/RequestAuthModel.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/ScopeModel.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/ScopeModel.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/ScopeModel.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/model/ScopeModel.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2Consts.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2Consts.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2Consts.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2Consts.java
diff --git a/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2InsideUtil.java b/sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2InsideUtil.java
similarity index 100%
rename from sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2InsideUtil.java
rename to sa-token-plugin/sa-token-oauth2/src/main/java/cn/dev33/satoken/oauth2/util/SaOAuth2InsideUtil.java
diff --git a/sa-token-reactor-spring-boot-starter/.gitignore b/sa-token-plugin/sa-token-spring-aop/.gitignore
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/.gitignore
rename to sa-token-plugin/sa-token-spring-aop/.gitignore
diff --git a/sa-token-spring-aop/pom.xml b/sa-token-plugin/sa-token-spring-aop/pom.xml
similarity index 95%
rename from sa-token-spring-aop/pom.xml
rename to sa-token-plugin/sa-token-spring-aop/pom.xml
index 3178f030..992b1fc8 100644
--- a/sa-token-spring-aop/pom.xml
+++ b/sa-token-plugin/sa-token-spring-aop/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-plugin</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-spring-aop/src/main/java/cn/dev33/satoken/aop/SaCheckAspect.java b/sa-token-plugin/sa-token-spring-aop/src/main/java/cn/dev33/satoken/aop/SaCheckAspect.java
similarity index 100%
rename from sa-token-spring-aop/src/main/java/cn/dev33/satoken/aop/SaCheckAspect.java
rename to sa-token-plugin/sa-token-spring-aop/src/main/java/cn/dev33/satoken/aop/SaCheckAspect.java
diff --git a/sa-token-spring-aop/src/main/resources/META-INF/spring.factories b/sa-token-plugin/sa-token-spring-aop/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from sa-token-spring-aop/src/main/resources/META-INF/spring.factories
rename to sa-token-plugin/sa-token-spring-aop/src/main/resources/META-INF/spring.factories
diff --git a/sa-token-starter/pom.xml b/sa-token-starter/pom.xml
new file mode 100644
index 00000000..ba9a79bd
--- /dev/null
+++ b/sa-token-starter/pom.xml
@@ -0,0 +1,24 @@
+<?xml version='1.0' encoding='utf-8'?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+   
+	<parent>
+        <groupId>cn.dev33</groupId>
+        <artifactId>sa-token-parent</artifactId>
+        <version>1.18.0</version>
+    </parent>
+    <packaging>pom</packaging>
+    
+	<name>sa-token-starter</name>
+    <artifactId>sa-token-starter</artifactId>
+	<description>sa-token starters</description>
+	
+    <modules>
+        <module>sa-token-servlet</module>
+        <module>sa-token-spring-boot-starter</module>
+        <module>sa-token-reactor-spring-boot-starter</module>
+    </modules>
+
+</project>
\ No newline at end of file
diff --git a/sa-token-servlet/.gitignore b/sa-token-starter/sa-token-reactor-spring-boot-starter/.gitignore
similarity index 100%
rename from sa-token-servlet/.gitignore
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/.gitignore
diff --git a/sa-token-reactor-spring-boot-starter/pom.xml b/sa-token-starter/sa-token-reactor-spring-boot-starter/pom.xml
similarity index 97%
rename from sa-token-reactor-spring-boot-starter/pom.xml
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/pom.xml
index da61102b..4f091a34 100644
--- a/sa-token-reactor-spring-boot-starter/pom.xml
+++ b/sa-token-starter/sa-token-reactor-spring-boot-starter/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-starter</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorHolder.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorHolder.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorHolder.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorHolder.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorSyncHolder.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorSyncHolder.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorSyncHolder.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/context/SaReactorSyncHolder.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/filter/SaReactorFilter.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaRequestForReactor.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaRequestForReactor.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaRequestForReactor.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaRequestForReactor.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaResponseForReactor.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaStorageForReactor.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaStorageForReactor.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaStorageForReactor.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/model/SaStorageForReactor.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/package-info.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/package-info.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/package-info.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/package-info.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaPathMatcherHolder.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaPathMatcherHolder.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaPathMatcherHolder.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaPathMatcherHolder.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenSpringAutowired.java b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenSpringAutowired.java
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenSpringAutowired.java
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/java/cn/dev33/satoken/reactor/spring/SaTokenSpringAutowired.java
diff --git a/sa-token-reactor-spring-boot-starter/src/main/resources/META-INF/spring.factories b/sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from sa-token-reactor-spring-boot-starter/src/main/resources/META-INF/spring.factories
rename to sa-token-starter/sa-token-reactor-spring-boot-starter/src/main/resources/META-INF/spring.factories
diff --git a/sa-token-spring-aop/.gitignore b/sa-token-starter/sa-token-servlet/.gitignore
similarity index 100%
rename from sa-token-spring-aop/.gitignore
rename to sa-token-starter/sa-token-servlet/.gitignore
diff --git a/sa-token-servlet/pom.xml b/sa-token-starter/sa-token-servlet/pom.xml
similarity index 95%
rename from sa-token-servlet/pom.xml
rename to sa-token-starter/sa-token-servlet/pom.xml
index 51e6fb9d..49c1fd28 100644
--- a/sa-token-servlet/pom.xml
+++ b/sa-token-starter/sa-token-servlet/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-starter</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaRequestForServlet.java b/sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaRequestForServlet.java
similarity index 100%
rename from sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaRequestForServlet.java
rename to sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaRequestForServlet.java
diff --git a/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java b/sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java
similarity index 100%
rename from sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java
rename to sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaResponseForServlet.java
diff --git a/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaStorageForServlet.java b/sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaStorageForServlet.java
similarity index 100%
rename from sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaStorageForServlet.java
rename to sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/model/SaStorageForServlet.java
diff --git a/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/package-info.java b/sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/package-info.java
similarity index 100%
rename from sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/package-info.java
rename to sa-token-starter/sa-token-servlet/src/main/java/cn/dev33/satoken/servlet/package-info.java
diff --git a/sa-token-spring-boot-starter/.gitignore b/sa-token-starter/sa-token-spring-boot-starter/.gitignore
similarity index 100%
rename from sa-token-spring-boot-starter/.gitignore
rename to sa-token-starter/sa-token-spring-boot-starter/.gitignore
diff --git a/sa-token-spring-boot-starter/pom.xml b/sa-token-starter/sa-token-spring-boot-starter/pom.xml
similarity index 95%
rename from sa-token-spring-boot-starter/pom.xml
rename to sa-token-starter/sa-token-spring-boot-starter/pom.xml
index 6c2c835d..7837b51a 100644
--- a/sa-token-spring-boot-starter/pom.xml
+++ b/sa-token-starter/sa-token-spring-boot-starter/pom.xml
@@ -6,7 +6,7 @@
 	
 	<parent>
         <groupId>cn.dev33</groupId>
-        <artifactId>sa-token-parent</artifactId>
+        <artifactId>sa-token-starter</artifactId>
         <version>1.18.0</version>
     </parent>
     <packaging>jar</packaging>
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/filter/SaServletFilter.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaAnnotationInterceptor.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaAnnotationInterceptor.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaAnnotationInterceptor.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaAnnotationInterceptor.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/interceptor/SaRouteInterceptor.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/package-info.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/package-info.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/package-info.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/package-info.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaPathMatcherHolder.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaPathMatcherHolder.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaPathMatcherHolder.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaPathMatcherHolder.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextForSpring.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextForSpring.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextForSpring.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenContextForSpring.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenSpringAutowired.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenSpringAutowired.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenSpringAutowired.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SaTokenSpringAutowired.java
diff --git a/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SpringMVCUtil.java b/sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SpringMVCUtil.java
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SpringMVCUtil.java
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/java/cn/dev33/satoken/spring/SpringMVCUtil.java
diff --git a/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories b/sa-token-starter/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories
rename to sa-token-starter/sa-token-spring-boot-starter/src/main/resources/META-INF/spring.factories