diff --git a/pom.xml b/pom.xml
index 80cc69d..de139c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,11 +31,13 @@
mybatis-spring-boot-starter
2.2.2
+
com.baomidou
mybatis-plus-boot-starter
3.5.1
+
org.springframework.boot
spring-boot-starter-data-redis
@@ -54,7 +56,7 @@
org.apache.commons
commons-lang3
- 3.12.0
+ 3.18.0
@@ -62,10 +64,11 @@
knife4j-spring-boot-starter
3.0.3
+
cn.hutool
hutool-all
- 5.8.38
+ 5.8.41
org.springframework.boot
@@ -73,6 +76,7 @@
runtime
true
+
org.postgresql
postgresql
@@ -94,6 +98,13 @@
spring-boot-starter-test
test
+
+
+ cn.dev33
+ sa-token-spring-boot-starter
+ 1.44.0
+ compile
+
junit
@@ -101,6 +112,12 @@
4.13.2
test
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
@@ -120,4 +137,4 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/com/yolo/keyborad/MyApplication.java b/src/main/java/com/yolo/keyborad/MyApplication.java
index 306d922..7137577 100644
--- a/src/main/java/com/yolo/keyborad/MyApplication.java
+++ b/src/main/java/com/yolo/keyborad/MyApplication.java
@@ -2,6 +2,7 @@ package com.yolo.keyborad;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
+import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -9,11 +10,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.yolo.keyborad.mapper")
public class MyApplication {
-
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
- log.info("info message");
- log.error("error message");
}
}
diff --git a/src/main/java/com/yolo/keyborad/config/SaTokenConfigure.java b/src/main/java/com/yolo/keyborad/config/SaTokenConfigure.java
new file mode 100644
index 0000000..82f2086
--- /dev/null
+++ b/src/main/java/com/yolo/keyborad/config/SaTokenConfigure.java
@@ -0,0 +1,57 @@
+package com.yolo.keyborad.config;
+
+import cn.dev33.satoken.fun.strategy.SaCorsHandleFunction;
+import cn.dev33.satoken.interceptor.SaInterceptor;
+import cn.dev33.satoken.router.SaHttpMethod;
+import cn.dev33.satoken.router.SaRouter;
+import cn.dev33.satoken.stp.StpUtil;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class SaTokenConfigure implements WebMvcConfigurer {
+ // 注册拦截器
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ // 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
+ registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin()))
+ .addPathPatterns("/**")
+ .excludePathPatterns(getExcludePaths());
+ }
+ private String[] getExcludePaths() {
+ return new String[]{
+ // Swagger & Knife4j 相关
+ "/doc.html",
+ "/webjars/**",
+ "/swagger-resources/**",
+ "/v2/api-docs",
+ "/v3/api-docs",
+ "/v3/api-docs/**",
+ "/swagger-ui.html",
+ "/swagger-ui/**",
+ "/favicon.ico",
+ // 你的其他放行路径,例如登录接口
+ "/demo/test"
+ };
+ }
+ @Bean
+ public SaCorsHandleFunction corsHandle() {
+ return (req, res, sto) -> {
+ res.
+ // 允许指定域访问跨域资源
+ setHeader("Access-Control-Allow-Origin", "*")
+ // 允许所有请求方式
+ .setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE")
+ // 有效时间
+ .setHeader("Access-Control-Max-Age", "3600")
+ // 允许的header参数
+ .setHeader("Access-Control-Allow-Headers", "*");
+
+ // 如果是预检请求,则立即返回到前端
+ SaRouter.match(SaHttpMethod.OPTIONS)
+ .back();
+ };
+ }
+}
diff --git a/src/main/java/com/yolo/keyborad/controller/DemoController.java b/src/main/java/com/yolo/keyborad/controller/DemoController.java
index 5f4dec7..075b8dd 100644
--- a/src/main/java/com/yolo/keyborad/controller/DemoController.java
+++ b/src/main/java/com/yolo/keyborad/controller/DemoController.java
@@ -3,7 +3,10 @@ package com.yolo.keyborad.controller;
import com.yolo.keyborad.common.BaseResponse;
import com.yolo.keyborad.common.ResultUtils;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
/*
* @author: ziin
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 1900b47..6efee5e 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -3,4 +3,15 @@ spring:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/postgres
username: root
- password: 123asd
\ No newline at end of file
+ password: 123asd
+
+knife4j:
+ enable: true
+ openapi:
+ title: "接口文档"
+ version: 1.0
+ group:
+ default:
+ api-rule: package
+ api-rule-resources:
+ - com.yolo.keyborad.controller
\ No newline at end of file
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 398f7ef..2b2b487 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,6 +1,6 @@
spring:
application:
- name: springboot-init
+ name: keyborad-backend
profiles:
active: dev
datasource:
@@ -27,7 +27,7 @@ server:
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
- log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl
+ log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
global-config:
db-config:
logic-delete-field: isDelete # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)