From 64e8d23a3201b3d4dfd9ab68aaf3da35fcf522ae Mon Sep 17 00:00:00 2001
From: wxd-gaming <492794628@qq.com>
Date: Thu, 1 Aug 2024 20:58:18 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E6=B5=8B?=
=?UTF-8?q?=E8=AF=95=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
wxdgaming.boot.spring/.idea/compiler.xml | 38 ++++++-------
wxdgaming.boot.spring/.idea/encodings.xml | 29 ++++++++++
wxdgaming.boot.spring/.idea/misc.xml | 3 +
wxdgaming.boot.spring/.idea/modules.xml | 2 +-
wxdgaming.boot.spring/.idea/vcs.xml | 1 +
wxdgaming.boot.spring/pom.xml | 24 ++++----
.../boot/spring/starter/BootStarter.java | 22 +++++++-
.../spring/starter/config/DataBaseConfig.java | 1 -
.../boot/spring/starter/config/NetConfig.java | 29 ++++++++++
.../spring/starter/config/SpringUtil.java | 20 ++++---
.../spring/starter/config/bean/TcpConfig.java | 55 +++++++++++++++++++
.../boot/spring/starter/i/OnClose.java | 15 +++++
.../boot/spring/starter/i/OnStart.java | 15 +++++
.../spring/starter/service/GMController.java | 4 --
.../starter/service/batis/MysqlService.java | 1 -
.../starter/service/batis/MysqlService1.java | 1 -
.../starter/service/batis/MysqlService2.java | 1 -
.../starter/service/batis/MysqlService3.java | 1 -
.../starter/service/batis/RedisService.java | 1 -
.../starter/service/batis/RedisService1.java | 1 -
.../spring/starter/service/net/TsService.java | 49 +++++++++++++++++
.../starter/service/net/TsService1.java | 49 +++++++++++++++++
.../spring/starter/service/net/WsService.java | 44 +++++++++++++++
.../boot/spring/starter/test/B1.java | 1 -
.../src/main/resources/application-net.yml | 21 +++++++
.../src/main/resources/application.yml | 2 +-
26 files changed, 376 insertions(+), 54 deletions(-)
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java
create mode 100644 wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml
diff --git a/wxdgaming.boot.spring/.idea/compiler.xml b/wxdgaming.boot.spring/.idea/compiler.xml
index d17fa41..3d8c431 100644
--- a/wxdgaming.boot.spring/.idea/compiler.xml
+++ b/wxdgaming.boot.spring/.idea/compiler.xml
@@ -6,51 +6,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/wxdgaming.boot.spring/.idea/modules.xml b/wxdgaming.boot.spring/.idea/modules.xml
index f0bca73..9710109 100644
--- a/wxdgaming.boot.spring/.idea/modules.xml
+++ b/wxdgaming.boot.spring/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/wxdgaming.boot.spring/.idea/vcs.xml b/wxdgaming.boot.spring/.idea/vcs.xml
index 782884e..efd944e 100644
--- a/wxdgaming.boot.spring/.idea/vcs.xml
+++ b/wxdgaming.boot.spring/.idea/vcs.xml
@@ -2,6 +2,7 @@
+
\ No newline at end of file
diff --git a/wxdgaming.boot.spring/pom.xml b/wxdgaming.boot.spring/pom.xml
index ebb21a3..db4c99b 100644
--- a/wxdgaming.boot.spring/pom.xml
+++ b/wxdgaming.boot.spring/pom.xml
@@ -52,6 +52,16 @@
+
+
+
+ com.alibaba
+ fastjson
+ 2.0.45
+
+
+
+
org.springframework
@@ -95,7 +105,6 @@
com.alibaba
fastjson
- 2.0.45
@@ -161,18 +170,13 @@
${wxdgaming.boot.version}
- org.apache.bcel
- bcel
- 6.7.0
-
-
- org.luaj
- luaj-jse
- 3.0.1
+ wxdgaming.boot
+ wxdgaming.boot.lua
+ ${wxdgaming.boot.version}
wxdgaming.boot
- wxdgaming.boot.lua
+ wxdgaming.boot.net
${wxdgaming.boot.version}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java
index b56ad05..8669285 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/BootStarter.java
@@ -1,7 +1,5 @@
package wxdgaming.boot.spring.starter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -10,7 +8,9 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import wxdgaming.boot.agent.loader.ClassDirLoader;
+import wxdgaming.boot.agent.system.ReflectContext;
import wxdgaming.boot.spring.starter.config.SpringUtil;
+import wxdgaming.boot.spring.starter.i.OnStart;
@EnableAsync
@EnableScheduling
@@ -32,6 +32,24 @@ public class BootStarter {
public static void reload() throws Exception {
ClassDirLoader classDirLoader = new ClassDirLoader("wxdgaming.boot.springstarter/target/test-classes", BootStarter.class.getClassLoader());
SpringUtil.loadClassLoader(classDirLoader, "wxdgaming.boot.springstarter.scripts");
+ ReflectContext
+ .Builder
+ .of(classDirLoader, "wxdgaming.boot")
+ .build()
+ .stream()
+ .sorted((o1, o2) -> SpringUtil.classComparator.compare(o1.getCls(), o2.getCls()))
+ .forEach(info -> {
+ Class> cls = info.getCls();
+ info.methodsWithAnnotated(OnStart.class).forEach(method -> {
+ Object bean = SpringUtil.getBean(cls);
+ System.out.println(cls + " - " + method.getName());
+ try {
+ method.invoke(bean);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ });
+ });
}
}
\ No newline at end of file
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java
index 44c11aa..90bf79f 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/DataBaseConfig.java
@@ -18,7 +18,6 @@ import java.io.Serializable;
**/
@Slf4j
@Data
-@Order(1)
@Component
@DependsOn(value = {"threadPoolConfig"})
@ConfigurationProperties(prefix = "database")
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java
new file mode 100644
index 0000000..ece57f6
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/NetConfig.java
@@ -0,0 +1,29 @@
+package wxdgaming.boot.spring.starter.config;
+
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.stereotype.Component;
+import wxdgaming.boot.spring.starter.config.bean.TcpConfig;
+
+/**
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-01 20:04
+ **/
+@Slf4j
+@Data
+@Component
+@DependsOn(value = {"threadPoolConfig"})
+@ConfigurationProperties(prefix = "net-config")
+public class NetConfig {
+
+ private TcpConfig tcpSocket;
+ private TcpConfig tcpSocket1;
+ private TcpConfig webSocket;
+
+ public NetConfig() {
+ System.out.println("\n" + this.getClass());
+ }
+
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java
index 7c0a76b..b1d6b33 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/SpringUtil.java
@@ -32,6 +32,7 @@ import wxdgaming.boot.agent.system.ReflectContext;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@@ -214,17 +215,20 @@ public class SpringUtil implements ApplicationContextAware, WebApplicationInitia
}
+ public static final Comparator> classComparator = (o1, o2) -> {
+ int o1Annotation = Optional.ofNullable(o1.getAnnotation(Order.class)).map(Order::value).orElse(999999);
+ int o2Annotation = Optional.ofNullable(o2.getAnnotation(Order.class)).map(Order::value).orElse(999999);
+ if (o1Annotation != o2Annotation) {
+ return Integer.compare(o1Annotation, o2Annotation);
+ }
+ return o1.getName().compareTo(o2.getName());
+ };
+
public static void loadClassLoader(ReflectContext context) {
+
List> list = context.classStream()
.filter(SpringUtil::hasSpringAnnotation)
- .sorted((o1, o2) -> {
- int o1Annotation = Optional.ofNullable(o1.getAnnotation(Order.class)).map(Order::value).orElse(999999);
- int o2Annotation = Optional.ofNullable(o2.getAnnotation(Order.class)).map(Order::value).orElse(999999);
- if (o1Annotation != o2Annotation) {
- return Integer.compare(o1Annotation, o2Annotation);
- }
- return o1.getName().compareTo(o2.getName());
- })
+ .sorted(classComparator)
.toList();
loadClassLoader(list);
}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java
new file mode 100644
index 0000000..72e59a3
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/config/bean/TcpConfig.java
@@ -0,0 +1,55 @@
+package wxdgaming.boot.spring.starter.config.bean;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import wxdgaming.boot.core.lang.ObjectBase;
+import wxdgaming.boot.core.str.StringUtil;
+import wxdgaming.boot.net.http.ssl.SslContextServer;
+import wxdgaming.boot.net.http.ssl.SslProtocolType;
+
+import javax.net.ssl.SSLContext;
+import java.io.Serializable;
+
+/**
+ * tcp网络配置
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2021-09-30 09:33
+ **/
+@Getter
+@Setter
+@Accessors(chain = true)
+public class TcpConfig extends ObjectBase implements Serializable {
+
+ @JSONField(ordinal = 1)
+ private String name = "";
+ /** 外网ip */
+ @JSONField(ordinal = 2)
+ private String wanIp = "0.0.0.0";
+ /** 内网ip */
+ @JSONField(ordinal = 3)
+ private String host = "";
+ /** 监听端口 */
+ @JSONField(ordinal = 4)
+ private int port = 0;
+ @JSONField(ordinal = 5)
+ private String sslProtocolType = null;
+ @JSONField(ordinal = 6)
+ private String jks = "";
+ @JSONField(ordinal = 7)
+ private String jksPwd = "";
+
+ public SslProtocolType sslProtocolType() throws Exception {
+ if (StringUtil.notEmptyOrNull(sslProtocolType)) {
+ return SslProtocolType.of(sslProtocolType);
+ }
+ return SslProtocolType.TLSV12;
+ }
+
+ public SSLContext sslContext() throws Exception {
+ return SslContextServer.sslContext(sslProtocolType(), jks, jksPwd);
+ }
+
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java
new file mode 100644
index 0000000..479a701
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnClose.java
@@ -0,0 +1,15 @@
+package wxdgaming.boot.spring.starter.i;
+
+import java.lang.annotation.*;
+
+/**
+ * 启动
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-01 20:24
+ */
+@Documented
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface OnClose {
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java
new file mode 100644
index 0000000..c1b71c4
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/i/OnStart.java
@@ -0,0 +1,15 @@
+package wxdgaming.boot.spring.starter.i;
+
+import java.lang.annotation.*;
+
+/**
+ * 启动
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2024-08-01 20:24
+ */
+@Documented
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface OnStart {
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java
index dfe4a9b..9139e8e 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/GMController.java
@@ -1,6 +1,5 @@
package wxdgaming.boot.spring.starter.service;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import wxdgaming.boot.spring.starter.BootStarter;
@@ -14,8 +13,6 @@ import wxdgaming.boot.spring.starter.BootStarter;
@RestController
public class GMController {
- @Autowired LuaService luaService;
-
@GetMapping("/reload/jar")
public String reload_jar() throws Exception {
BootStarter.reload();
@@ -24,7 +21,6 @@ public class GMController {
@GetMapping("/reload/lua")
public String reload_lua() throws Exception {
- luaService.init();
return "reload/lua";
}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java
index c82b5aa..cc16978 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService.java
@@ -14,7 +14,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2023-12-11 18:18
**/
-@Order(100)
@Component
@ConditionalOnProperty(value = "database.mysql.dbHost")
public class MysqlService extends MysqlDataHelper implements Ordered {
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java
index 9072ac2..d5445a7 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService1.java
@@ -13,7 +13,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2023-12-11 18:18
**/
-@Order(101)
@Component
@ConditionalOnProperty(value = "database.mysql1.dbHost")
public class MysqlService1 extends MysqlDataHelper {
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java
index ca4e933..96865ae 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService2.java
@@ -13,7 +13,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2023-12-11 18:18
**/
-@Order(102)
@Component
@ConditionalOnProperty(value = "database.mysql2.dbHost")
public class MysqlService2 extends MysqlDataHelper {
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java
index 1d7f8e8..7055957 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/MysqlService3.java
@@ -14,7 +14,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2023-12-11 18:18
**/
-@Order(103)
@Component
@ConditionalOnProperty(value = "database.mysql3.dbHost")
public class MysqlService3 extends MysqlDataHelper implements Ordered {
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java
index a6063c9..7145112 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService.java
@@ -13,7 +13,6 @@ import wxdgaming.boot.spring.starter.config.DataBaseConfig;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2023-12-11 18:19
**/
-@Order(200)
@Component
@ConditionalOnProperty(value = "database.redis.dbHost")
public class RedisService extends RedisDataHelper {
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java
index a8d8e4d..cd80a3d 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/batis/RedisService1.java
@@ -12,7 +12,6 @@ import wxdgaming.boot.batis.redis.RedisDataHelper;
* @author: wxd-gaming(無心道, 15388152619)
* @version: 2023-12-11 18:19
**/
-@Order(201)
@Component
@ConditionalOnProperty(value = "database.redis1.dbHost")
public class RedisService1 extends RedisDataHelper {
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java
new file mode 100644
index 0000000..d1c652b
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService.java
@@ -0,0 +1,49 @@
+package wxdgaming.boot.spring.starter.service.net;
+
+import io.netty.buffer.ByteBuf;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Component;
+import wxdgaming.boot.net.ts.TcpServer;
+import wxdgaming.boot.net.ts.TcpSession;
+import wxdgaming.boot.spring.starter.config.NetConfig;
+import wxdgaming.boot.spring.starter.config.bean.TcpConfig;
+import wxdgaming.boot.spring.starter.i.OnClose;
+import wxdgaming.boot.spring.starter.i.OnStart;
+
+/**
+ * tcp server
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2023-12-11 18:20
+ **/
+@Component
+@ConditionalOnProperty(value = "net-config.tcpSocket.port")
+public class TsService extends TcpServer {
+
+ @Autowired
+ public TsService(NetConfig netConfig) throws Exception {
+ TcpConfig config = netConfig.getTcpSocket();
+ setName(config.getName())
+ .setHost(config.getHost())
+ .setWanIp(config.getWanIp())
+ .setPort(config.getPort())
+ .setSslType(config.sslProtocolType())
+ .setSslContext(config.sslContext())
+ .initBootstrap();
+ }
+
+ @Override public void read(TcpSession session, ByteBuf byteBuf) {
+ super.read(session, byteBuf);
+ }
+
+ @OnClose
+ @Override public void close() {
+ super.close();
+ }
+
+ @OnStart
+ @Override public void open() {
+ super.open();
+ }
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java
new file mode 100644
index 0000000..13e3007
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/TsService1.java
@@ -0,0 +1,49 @@
+package wxdgaming.boot.spring.starter.service.net;
+
+import io.netty.buffer.ByteBuf;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Component;
+import wxdgaming.boot.net.ts.TcpServer;
+import wxdgaming.boot.net.ts.TcpSession;
+import wxdgaming.boot.spring.starter.config.NetConfig;
+import wxdgaming.boot.spring.starter.config.bean.TcpConfig;
+import wxdgaming.boot.spring.starter.i.OnClose;
+import wxdgaming.boot.spring.starter.i.OnStart;
+
+/**
+ * tcp server
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2023-12-11 18:20
+ **/
+@Component
+@ConditionalOnProperty(value = "net-config.tcpSocket1.port")
+public class TsService1 extends TcpServer {
+
+ @Autowired
+ public TsService1(NetConfig netConfig) throws Exception {
+ TcpConfig config = netConfig.getTcpSocket1();
+ setName(config.getName())
+ .setHost(config.getHost())
+ .setWanIp(config.getWanIp())
+ .setPort(config.getPort())
+ .setSslType(config.sslProtocolType())
+ .setSslContext(config.sslContext())
+ .initBootstrap();
+ }
+
+ @Override public void read(TcpSession session, ByteBuf byteBuf) {
+ super.read(session, byteBuf);
+ }
+
+ @OnClose
+ @Override public void close() {
+ super.close();
+ }
+
+ @OnStart
+ @Override public void open() {
+ super.open();
+ }
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java
new file mode 100644
index 0000000..a6fbd57
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/service/net/WsService.java
@@ -0,0 +1,44 @@
+package wxdgaming.boot.spring.starter.service.net;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import wxdgaming.boot.net.web.ws.WebSession;
+import wxdgaming.boot.net.web.ws.WebSocketServer;
+import wxdgaming.boot.spring.starter.config.NetConfig;
+import wxdgaming.boot.spring.starter.config.bean.TcpConfig;
+import wxdgaming.boot.spring.starter.i.OnClose;
+import wxdgaming.boot.spring.starter.i.OnStart;
+
+/**
+ * web socket service
+ *
+ * @author: wxd-gaming(無心道, 15388152619)
+ * @version: 2023-12-11 17:49
+ **/
+@Order(1)
+@Component
+@ConditionalOnProperty(value = "net-config.webSocket.port")
+public class WsService extends WebSocketServer {
+
+ public WsService(NetConfig netConfig) throws Exception {
+ TcpConfig config = netConfig.getWebSocket();
+ setName(config.getName())
+ .setHost(config.getHost())
+ .setWanIp(config.getWanIp())
+ .setPort(config.getPort())
+ .setSslType(config.sslProtocolType())
+ .setSslContext(config.sslContext())
+ .initBootstrap();
+ }
+
+ @OnClose
+ @Override public void close() {
+ super.close();
+ }
+
+ @OnStart
+ @Override public void open() {
+ super.open();
+ }
+}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java
index cbfd625..5f37e85 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/java/wxdgaming/boot/spring/starter/test/B1.java
@@ -11,6 +11,5 @@ public class B1 implements AutoCloseable {
}
@Override public void close() throws Exception {
- System.out.println("\n\nclose() " + this.getClass() + "\n\n");
}
}
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml
new file mode 100644
index 0000000..5fcdf31
--- /dev/null
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application-net.yml
@@ -0,0 +1,21 @@
+net-config:
+ tcpSocket:
+ name: "g1"
+ host: "*"
+ wanIp: "127.0.0.1"
+ port: 17000
+
+ tcpSocket1:
+ name: "g2"
+ host: "*"
+ wanIp: "127.0.0.1"
+ port: 17001
+
+ webSocket:
+ name: "g1"
+ host: "*"
+ wanIp: "127.0.0.1"
+ port: 18000
+ sslProtocolType: "TLSv1"
+ jks: "jks/wxdtest-1.8.jks"
+ jksPwd: "jks/wxdtest-1.8.jks.pwd"
\ No newline at end of file
diff --git a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml
index c7fa222..6d7c330 100644
--- a/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml
+++ b/wxdgaming.boot.spring/wxdgaming.boot.springstarter/src/main/resources/application.yml
@@ -6,7 +6,7 @@ server:
spring:
profiles:
- active: thread,db-mysql,db-redis
+ active: thread,db-mysql,db-redis,net
web:
resources:
chain: