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