From 5161023bf0b5fc2936b51b9acd363984324f54a1 Mon Sep 17 00:00:00 2001
From: Cui YongXing <2835316714@qq.com>
Date: Sun, 4 Aug 2024 11:18:16 +0800
Subject: [PATCH] 1
---
.gitignore | 35 +++++++++++++
pom.xml | 31 ++++++++++++
src/main/java/com/muyu/Main.java | 7 +++
.../nacos/remote/NacosServiceRemote.java | 23 +++++++++
.../NacosNamespaceInterceptor.java | 49 +++++++++++++++++++
.../muyu/common/nacos/remote/req/BaseReq.java | 21 ++++++++
.../nacos/remote/req/ServiceListReq.java | 18 +++++++
.../nacos/remote/resp/ServiceListResp.java | 23 +++++++++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
9 files changed, 208 insertions(+)
create mode 100644 .gitignore
create mode 100644 pom.xml
create mode 100644 src/main/java/com/muyu/Main.java
create mode 100644 src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java
create mode 100644 src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java
create mode 100644 src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java
create mode 100644 src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java
create mode 100644 src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java
create mode 100644 src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e403e3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,35 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a7a84c1
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,31 @@
+
+
+ 4.0.0
+
+
+ com.muyu
+ cloud-common
+ 3.6.3
+
+
+ com.muyu
+ cloud-common-nacos-api
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ cloud-common-core
+
+
+
+
+
diff --git a/src/main/java/com/muyu/Main.java b/src/main/java/com/muyu/Main.java
new file mode 100644
index 0000000..95690d4
--- /dev/null
+++ b/src/main/java/com/muyu/Main.java
@@ -0,0 +1,7 @@
+package com.muyu;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java b/src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java
new file mode 100644
index 0000000..125d85f
--- /dev/null
+++ b/src/main/java/com/muyu/common/nacos/remote/NacosServiceRemote.java
@@ -0,0 +1,23 @@
+package com.muyu.common.nacos.remote;
+
+import com.dtflys.forest.annotation.Address;
+import com.dtflys.forest.annotation.BaseRequest;
+import com.dtflys.forest.annotation.Body;
+import com.dtflys.forest.annotation.GetRequest;
+import com.muyu.common.core.constant.Constants;
+import com.muyu.common.nacos.remote.interceptor.NacosNamespaceInterceptor;
+import com.muyu.common.nacos.remote.req.ServiceListReq;
+import com.muyu.common.nacos.remote.resp.ServiceListResp;
+
+@BaseRequest(
+ baseURL = Constants.HTTP+"#{nacos.addr}/nacos/v1/ns/service",
+ interceptor = {NacosNamespaceInterceptor.class}
+)
+public class NacosServiceRemote {
+ @GetRequest(
+ url = "/list"
+ )
+ public ServiceListResp serviceList(@Body ServiceListReq req){
+ return null;
+ }
+}
diff --git a/src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java b/src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java
new file mode 100644
index 0000000..d356e15
--- /dev/null
+++ b/src/main/java/com/muyu/common/nacos/remote/interceptor/NacosNamespaceInterceptor.java
@@ -0,0 +1,49 @@
+package com.muyu.common.nacos.remote.interceptor;
+
+import com.dtflys.forest.converter.ForestEncoder;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.dtflys.forest.interceptor.Interceptor;
+import com.dtflys.forest.reflection.ForestMethod;
+import com.muyu.common.core.constant.Constants;
+import com.muyu.common.core.text.Convert;
+import com.muyu.common.core.utils.StringUtils;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Value;
+
+@Log4j2
+public class NacosNamespaceInterceptor implements Interceptor {
+
+
+
+ @Value("${nacos.namespace}")
+ private String namespaceId;
+
+ /**
+ * 该方法在请求发送之前被调用, 若返回false则不会继续发送请求
+ * @Param request Forest请求对象
+ */
+ @Override
+ public boolean beforeExecute(ForestRequest req) {
+ if (StringUtils.isNotEmpty(namespaceId)){
+
+ }
+ // 执行在发送请求之前处理的代码
+ String reqNamespaceId = Convert.str(req.getQuery("namespaceId"),"");
+ if (reqNamespaceId==null){
+ log.warn("本次请求nacos的namespaceId为携带,现已更改:【{}-》{}】",reqNamespaceId,namespaceId);
+ req.addQuery("namespaceId", namespaceId); // 添加URL的Query参数
+ }else {
+ if (StringUtils.equals(reqNamespaceId,namespaceId)){
+ log.warn("本次请求nacos的namespaceId和项目id不相符,现已更改:【{}-》{}】",reqNamespaceId,namespaceId);
+ req.addQuery("namespaceId",namespaceId);
+ }
+ }
+ return true; // 继续执行请求返回true
+ }
+
+
+
+}
+
diff --git a/src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java b/src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java
new file mode 100644
index 0000000..78ae3d0
--- /dev/null
+++ b/src/main/java/com/muyu/common/nacos/remote/req/BaseReq.java
@@ -0,0 +1,21 @@
+package com.muyu.common.nacos.remote.req;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaseReq {
+
+ /**
+ * 命名空间
+ */
+
+ private String namespaceId;
+
+
+}
diff --git a/src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java b/src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java
new file mode 100644
index 0000000..7debd36
--- /dev/null
+++ b/src/main/java/com/muyu/common/nacos/remote/req/ServiceListReq.java
@@ -0,0 +1,18 @@
+package com.muyu.common.nacos.remote.req;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+public class ServiceListReq extends BaseReq{
+ private int pageNum;
+ private int pageSize = 10;
+ private String groupName;
+}
diff --git a/src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java b/src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java
new file mode 100644
index 0000000..b8dd788
--- /dev/null
+++ b/src/main/java/com/muyu/common/nacos/remote/resp/ServiceListResp.java
@@ -0,0 +1,23 @@
+package com.muyu.common.nacos.remote.resp;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServiceListResp {
+ /**
+ * 返回条数
+ */
+ private int count;
+ /**
+ * 返回参数
+ */
+ private List doms;
+}
diff --git a/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..78b1bee
--- /dev/null
+++ b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+com.muyu.common.nacos.remote.interceptor.NacosNamespaceInterceptor