From 01237a40207fb451919c1098a29205aa1978c5c7 Mon Sep 17 00:00:00 2001
From: wxd-gaming <492794628@qq.com>
Date: Thu, 8 Aug 2024 09:00:28 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91lua?=
=?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../inspectionProfiles/Project_Default.xml | 8 ++
spring-lua/.idea/jarRepositories.xml | 10 +++
spring-lua/lua/GlobalUtil.lua | 31 -------
spring-lua/lua/script/api/api.lua | 19 ++++
spring-lua/lua/{ => script/index}/index.lua | 16 +---
spring-lua/lua/util/GlobalUtil.lua | 10 +++
spring-lua/pom.xml | 86 +++++++++++++++----
.../wxdgaming/boot/springlua/BootScan.java | 13 +++
.../boot/springlua/SpringLuaApplication.java | 8 +-
.../boot/springlua/bean/LuaLogger.java | 32 +++++++
.../springlua/controller/ApiController.java | 11 ++-
.../boot/springlua/data/BaseRepository.java | 15 ++++
.../boot/springlua/data/DataScan.java | 20 +++++
.../boot/springlua/data/DataSourceConfig.java | 26 ++++++
.../springlua/data/entity/BaseEntity.java | 32 +++++++
.../springlua/data/entity/log/ApiLog.java | 30 +++++++
.../boot/springlua/data/entity/user/User.java | 30 +++++++
.../data/repository/ApiLogRepository.java | 16 ++++
.../data/repository/UserRepository.java | 16 ++++
.../boot/springlua/filter/ApiAllowOrigin.java | 49 ++++++++++-
.../boot/springlua/serice/LuaService.java | 13 ++-
.../boot/springlua/serice/RedisConfig.java | 27 ++++++
spring-lua/src/main/resources/application.yml | 22 +++++
.../src/main/resources/logback-spring.xml | 11 ++-
wxdgaming.boot.spring/pom.xml | 12 +--
25 files changed, 485 insertions(+), 78 deletions(-)
create mode 100644 spring-lua/.idea/inspectionProfiles/Project_Default.xml
delete mode 100644 spring-lua/lua/GlobalUtil.lua
create mode 100644 spring-lua/lua/script/api/api.lua
rename spring-lua/lua/{ => script/index}/index.lua (60%)
create mode 100644 spring-lua/lua/util/GlobalUtil.lua
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/BootScan.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/bean/LuaLogger.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/BaseRepository.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataScan.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataSourceConfig.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/BaseEntity.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/log/ApiLog.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/user/User.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/ApiLogRepository.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/UserRepository.java
create mode 100644 spring-lua/src/main/java/wxdgaming/boot/springlua/serice/RedisConfig.java
diff --git a/spring-lua/.idea/inspectionProfiles/Project_Default.xml b/spring-lua/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..4121d77
--- /dev/null
+++ b/spring-lua/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-lua/.idea/jarRepositories.xml b/spring-lua/.idea/jarRepositories.xml
index 712ab9d..b729fae 100644
--- a/spring-lua/.idea/jarRepositories.xml
+++ b/spring-lua/.idea/jarRepositories.xml
@@ -6,6 +6,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-lua/lua/GlobalUtil.lua b/spring-lua/lua/GlobalUtil.lua
deleted file mode 100644
index 45a8054..0000000
--- a/spring-lua/lua/GlobalUtil.lua
+++ /dev/null
@@ -1,31 +0,0 @@
----
---- Generated by EmmyLua(https://github.com/EmmyLua)
---- Created by troy-chen.
---- DateTime: 2024/7/28 下午2:49
----
-
--- 不要用这种方式,特别耗时
---function logbackUtil()
--- return luajava.bindClass("logback.LogbackUtil");
---end
-
---- 输出日志到logback中
-function log_info(msg)
- -- logbackUtil 是启动的时候注入的全局变量, 这样在调用输出的时候耗时会好很多
- return logbackUtil:info(msg, "");
-end
-
---- 获取数据
-function getLuaData(key)
- return lua_data:get(key);
-end
-
---- 设置数据
-function setLuaData(key, value)
- return lua_data:put(key, value);
-end
-
-function urlPath(request)
- return request:getServletPath();
-end
-
diff --git a/spring-lua/lua/script/api/api.lua b/spring-lua/lua/script/api/api.lua
new file mode 100644
index 0000000..3a83b29
--- /dev/null
+++ b/spring-lua/lua/script/api/api.lua
@@ -0,0 +1,19 @@
+---
+--- Generated by EmmyLua(https://github.com/EmmyLua)
+--- Created by troy-chen.
+--- DateTime: 2024/7/27 下午11:36
+---
+function api_test(request, response, postBody)
+ print("api_test")
+ responseUtil:responseText(response, "api_test")
+end
+
+function paramsTest(p1, p2, p3, p4, p5, p6)
+ print("p1 = " .. tostring(p1)
+ .. "; p2 = " .. tostring(p2)
+ .. "; p3 = " .. tostring(p3)
+ .. "; p4 = " .. tostring(p4)
+ .. "; p5 = " .. tostring(p5)
+ )
+ return { "ok", "ok" }
+end
\ No newline at end of file
diff --git a/spring-lua/lua/index.lua b/spring-lua/lua/script/index/index.lua
similarity index 60%
rename from spring-lua/lua/index.lua
rename to spring-lua/lua/script/index/index.lua
index 572b84d..4141859 100644
--- a/spring-lua/lua/index.lua
+++ b/spring-lua/lua/script/index/index.lua
@@ -13,6 +13,7 @@ function index(request, response, postBody)
print(request:getServletPath())
print("request = " .. tostring(request))
print("response = " .. tostring(response))
+ redisTemplate:opsForValue():set("lua-dd", "dd");
responseUtil:responseText(response, "lua -- dd")
end
@@ -20,19 +21,4 @@ function index3(request, response, postBody)
print("index3")
local obj = { error = 0, msg = "ok" };
responseUtil:responseObj(response, obj)
-end
-
-function api_test(request, response, postBody)
- print("api_test")
- responseUtil:responseText(response, "api_test")
-end
-
-function paramsTest(p1, p2, p3, p4, p5, p6)
- print("p1 = " .. tostring(p1)
- .. "; p2 = " .. tostring(p2)
- .. "; p3 = " .. tostring(p3)
- .. "; p4 = " .. tostring(p4)
- .. "; p5 = " .. tostring(p5)
- )
- return { "ok", "ok" }
end
\ No newline at end of file
diff --git a/spring-lua/lua/util/GlobalUtil.lua b/spring-lua/lua/util/GlobalUtil.lua
new file mode 100644
index 0000000..19bc4b3
--- /dev/null
+++ b/spring-lua/lua/util/GlobalUtil.lua
@@ -0,0 +1,10 @@
+---
+--- Generated by EmmyLua(https://github.com/EmmyLua)
+--- Created by troy-chen.
+--- DateTime: 2024/7/28 下午2:49
+---
+
+function urlPath(request)
+ return request:getServletPath();
+end
+
diff --git a/spring-lua/pom.xml b/spring-lua/pom.xml
index b2f2c71..d1c5ec0 100644
--- a/spring-lua/pom.xml
+++ b/spring-lua/pom.xml
@@ -13,37 +13,87 @@
0.0.1-SNAPSHOT
spring-lua
spring-lua
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ public
+ https://maven.aliyun.com/repository/public
+
+
+
+ central
+ https://maven.aliyun.com/repository/central
+
+
+
+
+
+
+ public
+ public
+ https://maven.aliyun.com/repository/public
+
+
+ central
+ central
+ https://maven.aliyun.com/repository/central
+
+
+
21
+
+
+ org.springframework
+ spring-core
+
+
+ org.springframework
+ spring-context
+
+
+ org.springframework.boot
+ spring-boot
+
+
+ org.springframework.boot
+ spring-boot-starter
+
org.springframework.boot
spring-boot-starter-web
-
- org.projectlombok
- lombok
- provided
-
org.springframework.boot
spring-boot-starter-test
test
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.33
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.10
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.projectlombok
+ lombok
+ provided
+
junit
junit
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/BootScan.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/BootScan.java
new file mode 100644
index 0000000..5722315
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/BootScan.java
@@ -0,0 +1,13 @@
+package wxdgaming.boot.springlua;
+
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * 扫描
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-08 08:39
+ **/
+@ComponentScan
+public class BootScan {
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/SpringLuaApplication.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/SpringLuaApplication.java
index ca1507d..1b28ed4 100644
--- a/spring-lua/src/main/java/wxdgaming/boot/springlua/SpringLuaApplication.java
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/SpringLuaApplication.java
@@ -5,13 +5,17 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
+import wxdgaming.boot.springlua.data.DataScan;
@EnableAsync
@EnableScheduling
@ConfigurationPropertiesScan
@SpringBootApplication(
+ scanBasePackageClasses = {BootScan.class, DataScan.class},
exclude = {
DataSourceAutoConfiguration.class,
MongoAutoConfiguration.class
@@ -20,7 +24,9 @@ import org.springframework.scheduling.annotation.EnableScheduling;
public class SpringLuaApplication {
public static void main(String[] args) {
- SpringApplication.run(SpringLuaApplication.class, args);
+ ConfigurableApplicationContext applicationContext = SpringApplication.run(SpringLuaApplication.class, args);
+ RedisTemplate bean = (RedisTemplate) applicationContext.getBean("redisTemplate");
+ bean.opsForValue().set("dd", "dd");
}
}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/bean/LuaLogger.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/bean/LuaLogger.java
new file mode 100644
index 0000000..6d91ad6
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/bean/LuaLogger.java
@@ -0,0 +1,32 @@
+package wxdgaming.boot.springlua.bean;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 传递给lua脚本使用的slf4j日志
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-07 20:07
+ **/
+@Slf4j
+@Service
+public class LuaLogger {
+
+ public void debug(String msg) {
+ log.debug(msg);
+ }
+
+ public void info(String msg) {
+ log.info(msg);
+ }
+
+ public void warn(String msg) {
+ log.warn(msg);
+ }
+
+ public void error(String msg) {
+ log.error(msg);
+ }
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/controller/ApiController.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/controller/ApiController.java
index 0be5594..589a25c 100644
--- a/spring-lua/src/main/java/wxdgaming/boot/springlua/controller/ApiController.java
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/controller/ApiController.java
@@ -3,10 +3,11 @@ package wxdgaming.boot.springlua.controller;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.luaj.vm2.LuaValue;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import wxdgaming.boot.springlua.data.repository.UserRepository;
import wxdgaming.boot.springlua.serice.LuaService;
import java.io.IOException;
@@ -20,8 +21,12 @@ public class ApiController {
final LuaService luaService;
- @Autowired
- public ApiController(LuaService luaService) {
+ final RedisTemplate, ?> redisTemplate;
+ final UserRepository userRepository;
+
+ public ApiController(UserRepository userRepository, RedisTemplate, ?> redisTemplate, LuaService luaService) {
+ this.userRepository = userRepository;
+ this.redisTemplate = redisTemplate;
this.luaService = luaService;
}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/BaseRepository.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/BaseRepository.java
new file mode 100644
index 0000000..c94428e
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/BaseRepository.java
@@ -0,0 +1,15 @@
+package wxdgaming.boot.springlua.data;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.repository.NoRepositoryBean;
+
+/**
+ * 仓储
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-03 20:13
+ **/
+@NoRepositoryBean
+public interface BaseRepository extends JpaRepository {
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataScan.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataScan.java
new file mode 100644
index 0000000..2acccab
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataScan.java
@@ -0,0 +1,20 @@
+package wxdgaming.boot.springlua.data;
+
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * 注解
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-03 20:25
+ **/
+@EntityScan
+@ComponentScan()
+public class DataScan {
+
+ public DataScan() {
+ System.out.println("\n" + this.getClass());
+ }
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataSourceConfig.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataSourceConfig.java
new file mode 100644
index 0000000..bf46a09
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/DataSourceConfig.java
@@ -0,0 +1,26 @@
+package wxdgaming.boot.springlua.data;
+
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.sql.DataSource;
+
+/**
+ * 数据源配置
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-02 21:19
+ **/
+@Configuration
+public class DataSourceConfig {
+
+ @Bean
+ @Primary
+ @ConfigurationProperties("spring.datasource")
+ public DataSource datasource() {
+ return DruidDataSourceBuilder.create().build();
+ }
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/BaseEntity.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/BaseEntity.java
new file mode 100644
index 0000000..9a347dc
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/BaseEntity.java
@@ -0,0 +1,32 @@
+package wxdgaming.boot.springlua.data.entity;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.persistence.Table;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 实体基类
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-03 20:19
+ **/
+@Table
+@Entity
+@Getter
+@Setter
+@Accessors(chain = true)
+@MappedSuperclass
+public class BaseEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ private long uid;
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/log/ApiLog.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/log/ApiLog.java
new file mode 100644
index 0000000..fa71ffe
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/log/ApiLog.java
@@ -0,0 +1,30 @@
+package wxdgaming.boot.springlua.data.entity.log;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 操作日志
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-03 10:35
+ **/
+@Data
+@Accessors(chain = true)
+@Entity
+@Table
+public class ApiLog {
+ @Id
+ private long uid;
+
+ private String url;
+ private String path;
+ private String method;
+ private String contentType;
+ private String ip;
+ private String params;
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/user/User.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/user/User.java
new file mode 100644
index 0000000..d9a9a9f
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/entity/user/User.java
@@ -0,0 +1,30 @@
+package wxdgaming.boot.springlua.data.entity.user;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+/**
+ * 用户
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-02 19:07
+ **/
+@Getter
+@Setter
+@Accessors(chain = true)
+@Entity
+@Table
+public class User {
+
+ @Id()
+ @Column(length = 64)
+ private String openId;
+ private String account;
+
+}
+
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/ApiLogRepository.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/ApiLogRepository.java
new file mode 100644
index 0000000..0eb691a
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/ApiLogRepository.java
@@ -0,0 +1,16 @@
+package wxdgaming.boot.springlua.data.repository;
+
+import org.springframework.stereotype.Repository;
+import wxdgaming.boot.springlua.data.BaseRepository;
+import wxdgaming.boot.springlua.data.entity.log.ApiLog;
+
+/**
+ * 日志记录
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-03 10:36
+ **/
+@Repository
+public interface ApiLogRepository extends BaseRepository {
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/UserRepository.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/UserRepository.java
new file mode 100644
index 0000000..3aee0c3
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/data/repository/UserRepository.java
@@ -0,0 +1,16 @@
+package wxdgaming.boot.springlua.data.repository;
+
+import org.springframework.stereotype.Repository;
+import wxdgaming.boot.springlua.data.BaseRepository;
+import wxdgaming.boot.springlua.data.entity.user.User;
+
+/**
+ * s
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-02 19:28
+ **/
+@Repository
+public interface UserRepository extends BaseRepository {
+
+}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/filter/ApiAllowOrigin.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/filter/ApiAllowOrigin.java
index 8b68e74..e232be0 100644
--- a/spring-lua/src/main/java/wxdgaming/boot/springlua/filter/ApiAllowOrigin.java
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/filter/ApiAllowOrigin.java
@@ -1,9 +1,13 @@
package wxdgaming.boot.springlua.filter;
+import io.netty.util.internal.StringUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 过滤器,处理跨域
@@ -11,14 +15,57 @@ import org.springframework.web.servlet.HandlerInterceptor;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2024-08-01 08:45
**/
+@Slf4j
@Component
-public class ApiAllowOrigin implements HandlerInterceptor {
+public class ApiAllowOrigin implements WebMvcConfigurer, HandlerInterceptor {
+
+ public String currentUrl(HttpServletRequest request) {
+ String scheme = request.getScheme(); // http
+ String serverName = request.getServerName(); // hostname.com
+ int serverPort = request.getServerPort(); // 80
+ String contextPath = request.getContextPath(); // /mywebapp
+ String servletPath = request.getServletPath(); // /servlet/MyServlet
+
+ // Reconstruct original requesting URL
+ StringBuilder url = new StringBuilder();
+ url.append(scheme).append("://").append(serverName);
+
+ // Include server port if it's not standard http/https port
+ if (!((scheme.equals("http") && serverPort == 80) || (scheme.equals("https") && serverPort == 443))) {
+ url.append(":").append(serverPort);
+ }
+
+ url.append(contextPath).append(servletPath);
+
+ return url.toString();
+ }
+
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(this).addPathPatterns("/**");
+ }
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");
+ if (log.isDebugEnabled()) {
+ StringBuilder stringBuilder = new StringBuilder("\n-------------------- 接口日志,开始 --------------------\n");
+ stringBuilder.append(request.getMethod()).append(" ").append(request.getRequestURL().toString()).append(" ");
+ // 用户IP
+ String clientIp = request.getRemoteAddr();
+ stringBuilder.append("client ip:").append(clientIp).append("\n");
+ // 接口路径
+ String path = request.getServletPath();
+ stringBuilder.append("path:").append(path).append("\n");
+ stringBuilder.append("content-type:").append(request.getHeader("content-type")).append("\n");
+ if (StringUtil.length(request.getQueryString()) > 0) {
+ stringBuilder.append("query-string:").append(request.getQueryString()).append("\n");
+ }
+ stringBuilder.append("-------------------- 接口日志,结束 --------------------\n");
+ log.debug(stringBuilder.toString());
+ }
return HandlerInterceptor.super.preHandle(request, response, handler);
}
}
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/LuaService.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/LuaService.java
index e81d0d5..49e487e 100644
--- a/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/LuaService.java
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/LuaService.java
@@ -8,7 +8,10 @@ import org.luaj.vm2.LuaValue;
import org.luaj.vm2.Varargs;
import org.luaj.vm2.lib.jse.CoerceJavaToLua;
import org.luaj.vm2.lib.jse.JsePlatform;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
+import wxdgaming.boot.springlua.bean.LuaLogger;
import java.io.File;
import java.io.IOException;
@@ -28,14 +31,22 @@ public class LuaService {
private Globals globals;
- public LuaService() {
+ private final LuaLogger logger;
+ final RedisTemplate, ?> redisTemplate;
+ @Autowired
+ public LuaService(LuaLogger logger, RedisTemplate, ?> redisTemplate) {
+ this.logger = logger;
+ this.redisTemplate = redisTemplate;
}
@PostConstruct
public void init() throws IOException {
this.globals = JsePlatform.standardGlobals();
this.globals.set("responseUtil", CoerceJavaToLua.coerce(new ResponseUtil()));
+ this.globals.set("logger", CoerceJavaToLua.coerce(logger));
+ this.globals.set("redisTemplate", CoerceJavaToLua.coerce(redisTemplate));
+
Files.walk(Path.of("lua"), 99)
.map(Path::toFile)
.filter(File::isFile)
diff --git a/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/RedisConfig.java b/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/RedisConfig.java
new file mode 100644
index 0000000..c84cb2a
--- /dev/null
+++ b/spring-lua/src/main/java/wxdgaming/boot/springlua/serice/RedisConfig.java
@@ -0,0 +1,27 @@
+package wxdgaming.boot.springlua.serice;
+
+import org.springframework.cache.annotation.CachingConfigurer;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+@Configuration
+@EnableCaching
+public class RedisConfig implements CachingConfigurer {
+
+ @Bean
+ public RedisTemplate
+
+
+ mysql
+ mysql-connector-java
+ 8.0.33
+
org.springframework.boot
spring-boot-starter-data-jpa
@@ -125,12 +131,6 @@
com.alibaba
fastjson
-
-
- mysql
- mysql-connector-java
- 8.0.33
-
ch.qos.logback