whites = ignoreWhiteConfig.getWhites();
+
+ ServerHttpRequest request = exchange.getRequest();
+
+ String path = request.getURI().getPath();
+
+ if(StringUtils.matches(path,whites)){
+
+ chain.filter(exchange);
+
+ }
+
+ String first = request.getHeaders().getFirst("token");
+
+
+ if(StringUtils.isBlank(first)){
+
+ return GatewayUtils.errorResponse(exchange,"Token不可以为空");
+
+ }
+
+
+ try{
+ JwtUtils.parseToken(first);
+ }catch (Exception E){
+
+ return GatewayUtils.errorResponse(exchange,"Token不合法");
+
+ }
+
+ String userKey = JwtUtils.getUserKey(first);
+
+ String s = stringRedisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey);
+
+ if(StringUtils.isNotBlank(s)){
+ return GatewayUtils.errorResponse(exchange,"Token过期");
+ }
+
+ stringRedisTemplate.expire(TokenConstants.LOGIN_TOKEN_KEY+userKey,15,TimeUnit.MINUTES);
+
+ return chain.filter(exchange);
+ }
+
+ /**
+ * Get the order value of this object.
+ * Higher values are interpreted as lower priority. As a consequence,
+ * the object with the lowest value has the highest priority (somewhat
+ * analogous to Servlet {@code load-on-startup} values).
+ *
Same order values will result in arbitrary sort positions for the
+ * affected objects.
+ *
+ * @return the order value
+ * @see #HIGHEST_PRECEDENCE
+ * @see #LOWEST_PRECEDENCE
+ */
+ @Override
+ public int getOrder() {
+ return 0;
+ }
+}
diff --git a/hamburg-gateway/src/main/java/com/hamburg/gateway/utils/GatewayUtils.java b/hamburg-gateway/src/main/java/com/hamburg/gateway/utils/GatewayUtils.java
new file mode 100644
index 0000000..71c8112
--- /dev/null
+++ b/hamburg-gateway/src/main/java/com/hamburg/gateway/utils/GatewayUtils.java
@@ -0,0 +1,98 @@
+package com.hamburg.gateway.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.hamburg.common.result.Result;
+import com.hamburg.common.utils.StringUtils;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+/**
+ * @author DongZl
+ * @description: 网关处理工具类
+ */
+@Log4j2
+public class GatewayUtils {
+ /**
+ * 添加请求头参数
+ * @param mutate 修改对象
+ * @param key 键
+ * @param value 值
+ */
+ public static void addHeader(ServerHttpRequest.Builder mutate, String key, Object value) {
+ if (StringUtils.isEmpty(key)){
+ log.warn("添加请求头参数键不可以为空");
+ return;
+ }
+ if (value == null) {
+ log.warn("添加请求头参数:[{}]值为空",key);
+ return;
+ }
+ String valueStr = value.toString();
+ mutate.header(key, valueStr);
+ log.info("添加请求头参数成功 - 键:[{}] , 值:[{}]", key , value);
+ }
+
+ /**
+ * 删除请求头参数
+ * @param mutate 修改对象
+ * @param key 键
+ */
+ public static void removeHeader(ServerHttpRequest.Builder mutate, String key) {
+ if (StringUtils.isEmpty(key)){
+ log.warn("删除请求头参数键不可以为空");
+ return;
+ }
+ mutate.headers(httpHeaders -> httpHeaders.remove(key)).build();
+ log.info("删除请求头参数 - 键:[{}]",key);
+ }
+
+ /**
+ * 错误结果响应
+ * @param exchange 响应上下文
+ * @param msg 响应消息
+ * @return
+ */
+ public static Mono errorResponse(ServerWebExchange exchange, String msg, HttpStatus httpStatus) {
+ ServerHttpResponse response = exchange.getResponse();
+ //设置HTTP响应头状态
+ response.setStatusCode(httpStatus);
+ //设置HTTP响应头文本格式
+ response.getHeaders().add(HttpHeaders.CONTENT_TYPE, "application/json");
+ //定义响应内容
+ Result> result = Result.error(msg);
+ String resultJson = JSONObject.toJSONString(result);
+ log.error("[鉴权异常处理]请求路径:[{}],异常信息:[{}],响应结果:[{}]", exchange.getRequest().getPath(), msg, resultJson);
+ DataBuffer dataBuffer = response.bufferFactory().wrap(resultJson.getBytes());
+ //进行响应
+ return response.writeWith(Mono.just(dataBuffer));
+ }
+
+ /**
+ * 错误结果响应
+ * @param exchange 响应上下文
+ * @param msg 响应消息
+ * @return
+ */
+ public static Mono errorResponse(ServerWebExchange exchange, String msg) {
+ ServerHttpResponse response = exchange.getResponse();
+ //设置HTTP响应头状态
+ response.setStatusCode(HttpStatus.OK);
+ //设置HTTP响应头文本格式
+ response.getHeaders().add(HttpHeaders.CONTENT_TYPE, "application/json");
+ //定义响应内容
+ Result> result = Result.error(msg);
+ String resultJson = JSONObject.toJSONString(result);
+ log.error("[鉴权异常处理]请求路径:[{}],异常信息:[{}],响应结果:[{}]", exchange.getRequest().getPath(), msg, resultJson);
+ DataBuffer dataBuffer = response.bufferFactory().wrap(resultJson.getBytes());
+ //进行响应
+ return response.writeWith(Mono.just(dataBuffer));
+ }
+
+
+}
diff --git a/hamburg-gateway/src/main/resources/bootstrap.yml b/hamburg-gateway/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..3c28634
--- /dev/null
+++ b/hamburg-gateway/src/main/resources/bootstrap.yml
@@ -0,0 +1,31 @@
+# Tomcat
+server:
+ port: 18080
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: hamburg-gateway
+ profiles:
+ # 环境配置
+ active: dev
+ main:
+ # 允许使用循环引用
+ allow-circular-references: true
+ # 允许定义相同的bean对象 去覆盖原有的
+ allow-bean-definition-overriding: true
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 124.70.191.180:8848
+ namespace: High-five
+ config:
+ # 配置中心地址
+ server-addr: 124.70.191.180:8848
+ namespace: High-five
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
diff --git a/hamburg-modules/hamburg-comment/pom.xml b/hamburg-modules/hamburg-comment/pom.xml
new file mode 100644
index 0000000..81d2cbf
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+ org.example
+ hamburg-modules
+ 1.0-SNAPSHOT
+
+
+ hamburg-comment
+
+
+ 8
+ 8
+ UTF-8
+
+
+
diff --git a/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/CommentApplication.java b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/CommentApplication.java
new file mode 100644
index 0000000..93b8902
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/CommentApplication.java
@@ -0,0 +1,23 @@
+package com.hamburg.comment;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.comment
+ * @Project:14RK
+ * @name:CommentApplication
+ * @Date:2024/8/7 18:44
+ */
+
+@SpringBootApplication
+public class CommentApplication {
+
+ public static void main(String[] args) {
+
+ SpringApplication.run(CommentApplication.class, args);
+
+ }
+
+}
diff --git a/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/controller/CommentController.java b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/controller/CommentController.java
new file mode 100644
index 0000000..de7f2a6
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/controller/CommentController.java
@@ -0,0 +1,38 @@
+package com.hamburg.comment.controller;
+
+import com.hamburg.comment.service.CommentService;
+import com.hamburg.common.domain.Comment;
+import com.hamburg.common.result.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.comment.controller
+ * @Project:14RK
+ * @name:CommentController
+ * @Date:2024/8/7 18:54
+ */
+@RestController
+@RequestMapping("/comment")
+public class CommentController {
+
+ @Autowired
+ private CommentService commentService;
+
+ @GetMapping("/findCommentList")
+ public Result> findCommentList() {
+
+ List list=commentService.findCommentList();
+
+ return Result.success(list);
+
+
+ }
+
+
+}
diff --git a/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/mapper/CommentMapper.java b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/mapper/CommentMapper.java
new file mode 100644
index 0000000..e222ae5
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/mapper/CommentMapper.java
@@ -0,0 +1,19 @@
+package com.hamburg.comment.mapper;
+
+import com.hamburg.common.domain.Comment;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.comment.mapper
+ * @Project:14RK
+ * @name:CommentMapper
+ * @Date:2024/8/7 18:55
+ */
+@Mapper
+public interface CommentMapper {
+ List findCommentList();
+
+}
diff --git a/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/service/CommentService.java b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/service/CommentService.java
new file mode 100644
index 0000000..554bc0f
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/service/CommentService.java
@@ -0,0 +1,17 @@
+package com.hamburg.comment.service;
+
+import com.hamburg.common.domain.Comment;
+
+import java.util.List;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.comment.service
+ * @Project:14RK
+ * @name:CommentService
+ * @Date:2024/8/7 18:55
+ */
+public interface CommentService {
+ List findCommentList();
+
+}
diff --git a/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/service/impl/CommentServiceImpl.java b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/service/impl/CommentServiceImpl.java
new file mode 100644
index 0000000..793c1d1
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/java/com/hamburg/comment/service/impl/CommentServiceImpl.java
@@ -0,0 +1,29 @@
+package com.hamburg.comment.service.impl;
+
+import com.hamburg.comment.mapper.CommentMapper;
+import com.hamburg.comment.service.CommentService;
+import com.hamburg.common.domain.Comment;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.comment.service.impl
+ * @Project:14RK
+ * @name:CommentServiceImpl
+ * @Date:2024/8/7 18:55
+ */
+@Service
+public class CommentServiceImpl implements CommentService{
+
+ @Autowired
+ private CommentMapper commentMapper;
+
+ @Override
+ public List findCommentList() {
+ return commentMapper.findCommentList();
+ }
+}
diff --git a/hamburg-modules/hamburg-comment/src/main/resources/bootstrap.yml b/hamburg-modules/hamburg-comment/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..1008119
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+# Tomcat
+server:
+ port: 9005
+# Spring
+spring:
+ main:
+ allow-circular-references: true
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+ application:
+ # 应用名称
+ name: hamburg-comment
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 124.70.191.180:8848
+ namespace: High-five
+ config:
+ # 配置中心地址
+ server-addr: 124.70.191.180:8848
+ namespace: High-five
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+fdfs:
+ so-timeout: 1500 # socket 连接时长
+ connect-timeout: 600 # 连接 tracker 服务器超时时长
+ # 这两个是你服务器的 IP 地址,注意 23000 端口也要打开,阿里云服务器记得配置安全组。tracker 要和 stroage 服务进行交流
+ tracker-list: 124.70.191.180:22122
+ web-server-url: 124.70.191.180:8888
+ pool:
+ jmx-enabled: false
+ # 生成缩略图
+ thumb-image:
+ height: 500
+ width: 500
diff --git a/hamburg-modules/hamburg-comment/src/main/resources/mapper/ICommentMapper.xml b/hamburg-modules/hamburg-comment/src/main/resources/mapper/ICommentMapper.xml
new file mode 100644
index 0000000..4053f73
--- /dev/null
+++ b/hamburg-modules/hamburg-comment/src/main/resources/mapper/ICommentMapper.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/hamburg-modules/hamburg-user/pom.xml b/hamburg-modules/hamburg-user/pom.xml
new file mode 100644
index 0000000..b9820ce
--- /dev/null
+++ b/hamburg-modules/hamburg-user/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+ org.example
+ hamburg-modules
+ 1.0-SNAPSHOT
+
+
+ hamburg-user
+
+
+ 8
+ 8
+ UTF-8
+
+
+
diff --git a/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/UserApplication.java b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/UserApplication.java
new file mode 100644
index 0000000..164fae1
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/UserApplication.java
@@ -0,0 +1,23 @@
+package com.hamburg.user;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.user
+ * @Project:14RK
+ * @name:UserApplication
+ * @Date:2024/8/7 18:45
+ */
+@SpringBootApplication
+public class UserApplication {
+
+ public static void main(String[] args) {
+
+ SpringApplication.run(UserApplication.class, args);
+
+
+ }
+
+}
diff --git a/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/controller/UserController.java b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/controller/UserController.java
new file mode 100644
index 0000000..7cf9690
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/controller/UserController.java
@@ -0,0 +1,37 @@
+package com.hamburg.user.controller;
+
+import com.hamburg.common.domain.User;
+import com.hamburg.common.domain.request.UserReq;
+import com.hamburg.common.result.Result;
+import com.hamburg.user.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.user.controller
+ * @Project:14RK
+ * @name:UserController
+ * @Date:2024/8/7 18:53
+ */
+@RestController
+@RequestMapping("/user")
+public class UserController {
+
+ @Autowired
+ private UserService userService;
+
+
+ @PostMapping("/getLogin")
+ public Result getLogin(@RequestBody UserReq userReq) {
+
+ User user1=userService.getLogin(userReq);
+
+ return Result.success(user1);
+
+ }
+
+}
diff --git a/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/mapper/UserMapper.java b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/mapper/UserMapper.java
new file mode 100644
index 0000000..d0bdc20
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/mapper/UserMapper.java
@@ -0,0 +1,18 @@
+package com.hamburg.user.mapper;
+
+import com.hamburg.common.domain.User;
+import com.hamburg.common.domain.request.UserReq;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.user.mapper
+ * @Project:14RK
+ * @name:UserMapper
+ * @Date:2024/8/7 18:53
+ */
+@Mapper
+public interface UserMapper {
+ User getLogin(UserReq userReq);
+
+}
diff --git a/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/service/UserService.java b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/service/UserService.java
new file mode 100644
index 0000000..f797a79
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/service/UserService.java
@@ -0,0 +1,16 @@
+package com.hamburg.user.service;
+
+import com.hamburg.common.domain.User;
+import com.hamburg.common.domain.request.UserReq;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.user.service
+ * @Project:14RK
+ * @name:UserService
+ * @Date:2024/8/7 18:53
+ */
+public interface UserService {
+ User getLogin(UserReq userReq);
+
+}
diff --git a/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/service/impl/UserServiceImpl.java b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..fbb8802
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/java/com/hamburg/user/service/impl/UserServiceImpl.java
@@ -0,0 +1,27 @@
+package com.hamburg.user.service.impl;
+
+import com.hamburg.common.domain.User;
+import com.hamburg.common.domain.request.UserReq;
+import com.hamburg.user.mapper.UserMapper;
+import com.hamburg.user.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author:liuxinyue
+ * @Package:com.hamburg.user.service.impl
+ * @Project:14RK
+ * @name:UserServiceImpl
+ * @Date:2024/8/7 18:53
+ */
+@Service
+public class UserServiceImpl implements UserService {
+
+ @Autowired
+ private UserMapper userMapper;
+
+ @Override
+ public User getLogin(UserReq userReq) {
+ return userMapper.getLogin(userReq);
+ }
+}
diff --git a/hamburg-modules/hamburg-user/src/main/resources/bootstrap.yml b/hamburg-modules/hamburg-user/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..51b69e7
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+# Tomcat
+server:
+ port: 9004
+# Spring
+spring:
+ main:
+ allow-circular-references: true
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+ application:
+ # 应用名称
+ name: hamburg-user
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 124.70.191.180:8848
+ namespace: High-five
+ config:
+ # 配置中心地址
+ server-addr: 124.70.191.180:8848
+ namespace: High-five
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+fdfs:
+ so-timeout: 1500 # socket 连接时长
+ connect-timeout: 600 # 连接 tracker 服务器超时时长
+ # 这两个是你服务器的 IP 地址,注意 23000 端口也要打开,阿里云服务器记得配置安全组。tracker 要和 stroage 服务进行交流
+ tracker-list: 124.70.191.180:22122
+ web-server-url: 124.70.191.180:8888
+ pool:
+ jmx-enabled: false
+ # 生成缩略图
+ thumb-image:
+ height: 500
+ width: 500
diff --git a/hamburg-modules/hamburg-user/src/main/resources/mapper/IUserMapper.xml b/hamburg-modules/hamburg-user/src/main/resources/mapper/IUserMapper.xml
new file mode 100644
index 0000000..623bc96
--- /dev/null
+++ b/hamburg-modules/hamburg-user/src/main/resources/mapper/IUserMapper.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ select * from t_user where user_name=#{userName} and user_pwd=#{userPwd}
+
+
diff --git a/hamburg-modules/pom.xml b/hamburg-modules/pom.xml
new file mode 100644
index 0000000..348d5e7
--- /dev/null
+++ b/hamburg-modules/pom.xml
@@ -0,0 +1,80 @@
+
+
+ 4.0.0
+
+ org.example
+ 14RK
+ 1.0-SNAPSHOT
+
+
+ hamburg-modules
+ pom
+
+ hamburg-user
+ hamburg-comment
+
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+
+ com.baomidou
+ lock4j-redis-template-spring-boot-starter
+ 2.2.7
+
+
+
+ org.example
+ hamburg-common
+ 1.0-SNAPSHOT
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.8
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.2.2
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.1
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.github.tobato
+ fastdfs-client
+ 1.26.5
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..bcaf8e6
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,68 @@
+
+
+ 4.0.0
+
+ org.example
+ 14RK
+ 1.0-SNAPSHOT
+ pom
+
+ hamburg-auth
+ hamburg-common
+ hamburg-gateway
+ hamburg-modules
+
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+
+ spring-boot-starter-parent
+ org.springframework.boot
+ 2.6.2
+
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ 2021.0.0
+ pom
+ import
+
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ 2021.1
+ pom
+ import
+
+
+
+ com.alibaba.nacos
+ nacos-client
+ 2.0.4
+
+
+
+
+ org.example
+ hamburg-common
+ 1.0-SNAPSHOT
+
+
+
+
+
+