wangtao hace 3 años
padre
commit
ee93791629

+ 10 - 1
lb-app/pom.xml

@@ -12,8 +12,17 @@
     <artifactId>lb-app</artifactId>
 
     <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                    <groupId>org.springframework.boot</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
         <!-- spring-boot-devtools -->
-
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-devtools</artifactId>

+ 34 - 7
lb-core/src/main/java/com/ydd/ecloud/core/config/CorsConfig.java

@@ -1,18 +1,45 @@
 package com.ydd.ecloud.core.config;
 
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @Configuration
 public class CorsConfig implements WebMvcConfigurer {
 
-    @Override
-    public void addCorsMappings(CorsRegistry registry) {
-        registry.addMapping("/**")
-            .allowedOrigins("*")
-            .allowCredentials(true)
-            .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
-            .maxAge(3600);
+    //    @Override
+//    public void addCorsMappings(CorsRegistry registry) {
+//        registry.addMapping("/**")
+//            .allowedOrigins("*")
+//            .allowCredentials(true)
+//            .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
+//            .maxAge(3600);
+//    }
+    private CorsConfiguration buildConfig() {
+        CorsConfiguration corsConfiguration = new CorsConfiguration();
+        corsConfiguration.setAllowCredentials(true);  //sessionid 多次访问一致
+
+        // 允许访问的客户端域名
+        List<String> allowedOriginPatterns = new ArrayList<>();
+        allowedOriginPatterns.add("*");
+        corsConfiguration.setAllowedOriginPatterns(allowedOriginPatterns);
+//        corsConfiguration.addAllowedOrigin("*"); // 允许任何域名使用
+        corsConfiguration.addAllowedHeader("*"); // 允许任何头
+        corsConfiguration.addAllowedMethod("*"); // 允许任何方法(post、get等)
+        return corsConfiguration;
+    }
+
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", buildConfig()); // 对接口配置跨域设置
+        return new CorsFilter(source);
     }
 }

+ 16 - 16
lb-framework/src/main/java/com/ydd/framework/config/ResourcesConfig.java

@@ -47,20 +47,20 @@ public class ResourcesConfig implements WebMvcConfigurer
     /**
      * 跨域配置
      */
-    @Bean
-    public CorsFilter corsFilter()
-    {
-        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-        CorsConfiguration config = new CorsConfiguration();
-        config.setAllowCredentials(true);
-        // 设置访问源地址
-        config.addAllowedOrigin("*");
-        // 设置访问源请求头
-        config.addAllowedHeader("*");
-        // 设置访问源请求方法
-        config.addAllowedMethod("*");
-        // 对接口配置跨域设置
-        source.registerCorsConfiguration("/**", config);
-        return new CorsFilter(source);
-    }
+//    @Bean
+//    public CorsFilter corsFilter()
+//    {
+//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+//        CorsConfiguration config = new CorsConfiguration();
+//        config.setAllowCredentials(true);
+//        // 设置访问源地址
+//        config.addAllowedOrigin("*");
+//        // 设置访问源请求头
+//        config.addAllowedHeader("*");
+//        // 设置访问源请求方法
+//        config.addAllowedMethod("*");
+//        // 对接口配置跨域设置
+//        source.registerCorsConfiguration("/**", config);
+//        return new CorsFilter(source);
+//    }
 }

+ 26 - 26
lb-framework/src/main/java/com/ydd/framework/config/ValidatorConf.java

@@ -1,26 +1,26 @@
-package com.ydd.framework.config;
-
-import org.hibernate.validator.HibernateValidator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
-
-@Configuration
-public class ValidatorConf {
-
-    /**
-     * 配置校验框架 快速返回模式
-     */
-    @Bean
-    public Validator validator() {
-        ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
-                .configure()
-                .failFast(true)
-                .buildValidatorFactory();
-        return validatorFactory.getValidator();
-    }
-
-}
+//package com.ydd.framework.config;
+//
+//import org.hibernate.validator.HibernateValidator;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import javax.validation.Validation;
+//import javax.validation.Validator;
+//import javax.validation.ValidatorFactory;
+//
+//@Configuration
+//public class ValidatorConf {
+//
+//    /**
+//     * 配置校验框架 快速返回模式
+//     */
+//    @Bean
+//    public Validator validator() {
+//        ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
+//                .configure()
+//                .failFast(true)
+//                .buildValidatorFactory();
+//        return validatorFactory.getValidator();
+//    }
+//
+//}

+ 5 - 5
lb-gateway/pom.xml

@@ -54,11 +54,11 @@
 
 
 
-        <dependency>
-            <groupId>com.ydd</groupId>
-            <artifactId>lb-common</artifactId>
-            <version>1.0</version>
-        </dependency>
+        <!--<dependency>-->
+            <!--<groupId>com.ydd</groupId>-->
+            <!--<artifactId>lb-common</artifactId>-->
+            <!--<version>1.0</version>-->
+        <!--</dependency>-->
 
     </dependencies>
 

+ 4 - 1
lb-gateway/src/main/java/com/ydd/gateway/GatewayApplication.java

@@ -4,14 +4,17 @@ import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
 import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.data.redis.RedisReactiveAutoConfiguration;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 
 /**
  * 网关启动程序
  * 
  * @author
  */
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,MybatisAutoConfiguration.class,DruidDataSourceAutoConfigure.class })
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,MybatisAutoConfiguration.class,DruidDataSourceAutoConfigure.class})
+@EnableDiscoveryClient
 public class GatewayApplication
 {
     public static void main(String[] args)

+ 9 - 10
lb-gateway/src/main/java/com/ydd/gateway/filter/BlackListUrlFilter.java

@@ -1,14 +1,13 @@
 package com.ydd.gateway.filter;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
-
-import com.ydd.common.utils.ServletUtils;
 import org.springframework.cloud.gateway.filter.GatewayFilter;
 import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
 /**
  * 黑名单过滤器
  * 
@@ -22,11 +21,11 @@ public class BlackListUrlFilter extends AbstractGatewayFilterFactory<BlackListUr
     {
         return (exchange, chain) -> {
 
-            String url = exchange.getRequest().getURI().getPath();
-            if (config.matchBlacklist(url))
-            {
-                return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "请求地址不允许访问");
-            }
+//            String url = exchange.getRequest().getURI().getPath();
+//            if (config.matchBlacklist(url))
+//            {
+//                return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "请求地址不允许访问");
+//            }
 
             return chain.filter(exchange);
         };

+ 120 - 121
lb-gateway/src/main/java/com/ydd/gateway/filter/XssFilter.java

@@ -1,121 +1,120 @@
-package com.ydd.gateway.filter;
-
-import java.nio.charset.StandardCharsets;
-
-import com.ydd.common.utils.StringUtils;
-import com.ydd.common.utils.html.EscapeUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.core.Ordered;
-import org.springframework.core.io.buffer.DataBuffer;
-import org.springframework.core.io.buffer.DataBufferUtils;
-import org.springframework.core.io.buffer.NettyDataBufferFactory;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.MediaType;
-import org.springframework.http.server.reactive.ServerHttpRequest;
-import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
-import org.springframework.stereotype.Component;
-import org.springframework.web.server.ServerWebExchange;
-import com.ydd.gateway.config.properties.XssProperties;
-import io.netty.buffer.ByteBufAllocator;
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-/**
- * 跨站脚本过滤器
- *
- * @author ruoyi
- */
-@Component
-@ConditionalOnProperty(value = "security.xss.enabled", havingValue = "true")
-public class XssFilter implements GlobalFilter, Ordered
-{
-    // 跨站脚本的 xss 配置,nacos自行添加
-    @Autowired
-    private XssProperties xss;
-
-    @Override
-    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain)
-    {
-        ServerHttpRequest request = exchange.getRequest();
-        // GET DELETE 不过滤
-        HttpMethod method = request.getMethod();
-        if (method == null || method.matches("GET") || method.matches("DELETE"))
-        {
-            return chain.filter(exchange);
-        }
-        // 非json类型,不过滤
-        if (!isJsonRequest(exchange))
-        {
-            return chain.filter(exchange);
-        }
-        // excludeUrls 不过滤
-        String url = request.getURI().getPath();
-        if (StringUtils.matches(url, xss.getExcludeUrls()))
-        {
-            return chain.filter(exchange);
-        }
-        ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange);
-        return chain.filter(exchange.mutate().request(httpRequestDecorator).build());
-
-    }
-
-    private ServerHttpRequestDecorator requestDecorator(ServerWebExchange exchange)
-    {
-        ServerHttpRequestDecorator serverHttpRequestDecorator = new ServerHttpRequestDecorator(exchange.getRequest())
-        {
-            @Override
-            public Flux<DataBuffer> getBody()
-            {
-                Flux<DataBuffer> body = super.getBody();
-                return body.map(dataBuffer -> {
-                    byte[] content = new byte[dataBuffer.readableByteCount()];
-                    dataBuffer.read(content);
-                    DataBufferUtils.release(dataBuffer);
-                    String bodyStr = new String(content, StandardCharsets.UTF_8);
-                    // 防xss攻击过滤
-                    bodyStr = EscapeUtil.clean(bodyStr);
-                    // 转成字节
-                    byte[] bytes = bodyStr.getBytes();
-                    NettyDataBufferFactory nettyDataBufferFactory = new NettyDataBufferFactory(ByteBufAllocator.DEFAULT);
-                    DataBuffer buffer = nettyDataBufferFactory.allocateBuffer(bytes.length);
-                    buffer.write(bytes);
-                    return buffer;
-                });
-            }
-
-            @Override
-            public HttpHeaders getHeaders()
-            {
-                HttpHeaders httpHeaders = new HttpHeaders();
-                httpHeaders.putAll(super.getHeaders());
-                // 由于修改了请求体的body,导致content-length长度不确定,因此需要删除原先的content-length
-                httpHeaders.remove(HttpHeaders.CONTENT_LENGTH);
-                httpHeaders.set(HttpHeaders.TRANSFER_ENCODING, "chunked");
-                return httpHeaders;
-            }
-
-        };
-        return serverHttpRequestDecorator;
-    }
-
-    /**
-     * 是否是Json请求
-     * 
-     * @param exchange
-     */
-    public boolean isJsonRequest(ServerWebExchange exchange)
-    {
-        String header = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE);
-        return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE);
-    }
-
-    @Override
-    public int getOrder()
-    {
-        return -100;
-    }
-}
+//package com.ydd.gateway.filter;
+//
+//import java.nio.charset.StandardCharsets;
+//
+//
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+//import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+//import org.springframework.cloud.gateway.filter.GlobalFilter;
+//import org.springframework.core.Ordered;
+//import org.springframework.core.io.buffer.DataBuffer;
+//import org.springframework.core.io.buffer.DataBufferUtils;
+//import org.springframework.core.io.buffer.NettyDataBufferFactory;
+//import org.springframework.http.HttpHeaders;
+//import org.springframework.http.HttpMethod;
+//import org.springframework.http.MediaType;
+//import org.springframework.http.server.reactive.ServerHttpRequest;
+//import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.server.ServerWebExchange;
+//import com.ydd.gateway.config.properties.XssProperties;
+//import io.netty.buffer.ByteBufAllocator;
+//import reactor.core.publisher.Flux;
+//import reactor.core.publisher.Mono;
+//
+///**
+// * 跨站脚本过滤器
+// *
+// * @author ruoyi
+// */
+//@Component
+//@ConditionalOnProperty(value = "security.xss.enabled", havingValue = "true")
+//public class XssFilter implements GlobalFilter, Ordered
+//{
+//    // 跨站脚本的 xss 配置,nacos自行添加
+//    @Autowired
+//    private XssProperties xss;
+//
+//    @Override
+//    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain)
+//    {
+//        ServerHttpRequest request = exchange.getRequest();
+//        // GET DELETE 不过滤
+//        HttpMethod method = request.getMethod();
+//        if (method == null || method.matches("GET") || method.matches("DELETE"))
+//        {
+//            return chain.filter(exchange);
+//        }
+//        // 非json类型,不过滤
+//        if (!isJsonRequest(exchange))
+//        {
+//            return chain.filter(exchange);
+//        }
+//        // excludeUrls 不过滤
+//        String url = request.getURI().getPath();
+////        if (StringUtils.matches(url, xss.getExcludeUrls()))
+////        {
+////            return chain.filter(exchange);
+////        }
+//        ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange);
+//        return chain.filter(exchange.mutate().request(httpRequestDecorator).build());
+//
+//    }
+//
+//    private ServerHttpRequestDecorator requestDecorator(ServerWebExchange exchange)
+//    {
+//        ServerHttpRequestDecorator serverHttpRequestDecorator = new ServerHttpRequestDecorator(exchange.getRequest())
+//        {
+//            @Override
+//            public Flux<DataBuffer> getBody()
+//            {
+//                Flux<DataBuffer> body = super.getBody();
+//                return body.map(dataBuffer -> {
+//                    byte[] content = new byte[dataBuffer.readableByteCount()];
+//                    dataBuffer.read(content);
+//                    DataBufferUtils.release(dataBuffer);
+//                    String bodyStr = new String(content, StandardCharsets.UTF_8);
+//                    // 防xss攻击过滤
+//                    bodyStr = EscapeUtil.clean(bodyStr);
+//                    // 转成字节
+//                    byte[] bytes = bodyStr.getBytes();
+//                    NettyDataBufferFactory nettyDataBufferFactory = new NettyDataBufferFactory(ByteBufAllocator.DEFAULT);
+//                    DataBuffer buffer = nettyDataBufferFactory.allocateBuffer(bytes.length);
+//                    buffer.write(bytes);
+//                    return buffer;
+//                });
+//            }
+//
+//            @Override
+//            public HttpHeaders getHeaders()
+//            {
+//                HttpHeaders httpHeaders = new HttpHeaders();
+//                httpHeaders.putAll(super.getHeaders());
+//                // 由于修改了请求体的body,导致content-length长度不确定,因此需要删除原先的content-length
+//                httpHeaders.remove(HttpHeaders.CONTENT_LENGTH);
+//                httpHeaders.set(HttpHeaders.TRANSFER_ENCODING, "chunked");
+//                return httpHeaders;
+//            }
+//
+//        };
+//        return serverHttpRequestDecorator;
+//    }
+//
+//    /**
+//     * 是否是Json请求
+//     *
+//     * @param exchange
+//     */
+//    public boolean isJsonRequest(ServerWebExchange exchange)
+//    {
+//        String header = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE);
+//        return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE);
+//    }
+//
+//    @Override
+//    public int getOrder()
+//    {
+//        return -100;
+//    }
+//}

+ 12 - 13
lb-gateway/src/main/java/com/ydd/gateway/service/FilterService.java

@@ -1,10 +1,9 @@
 package com.ydd.gateway.service;
 
 import com.alibaba.fastjson.JSON;
-import com.ydd.common.utils.StringUtils;
-import com.ydd.common.utils.sign.Md5Utils;
 import com.ydd.filter.ResponseObject;
 import com.ydd.gateway.filter.AuthorizeGatewayFilterFactory;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,17 +57,17 @@ public class FilterService {
 			return Mono.just(buffer);
 		}
 
-		boolean right = Md5Utils.verifySign(params, signStr);
-		if (!right) {
-			ResponseObject data = new ResponseObject();
-			data.setResult("error");
-			data.setMsg("签名不合法");
-			byte[] datas = JSON.toJSONString(data).getBytes(StandardCharsets.UTF_8);
-			DataBuffer buffer = response.bufferFactory().wrap(datas);
-			response.setStatusCode(HttpStatus.UNAUTHORIZED);
-
-			return Mono.just(buffer);
-		}
+//		boolean right = Md5Utils.verifySign(params, signStr);
+//		if (!right) {
+//			ResponseObject data = new ResponseObject();
+//			data.setResult("error");
+//			data.setMsg("签名不合法");
+//			byte[] datas = JSON.toJSONString(data).getBytes(StandardCharsets.UTF_8);
+//			DataBuffer buffer = response.bufferFactory().wrap(datas);
+//			response.setStatusCode(HttpStatus.UNAUTHORIZED);
+//
+//			return Mono.just(buffer);
+//		}
 		return null;
 	}
 

+ 12 - 0
lb-gateway/src/main/resources/application.yml

@@ -2,6 +2,18 @@ spring:
   application:
     name: lb-gateway
   cloud:
+    nacos:
+        discovery:
+        # 服务注册地址
+          server-addr: 192.168.1.200:8848
+        config:
+         # 配置中心地址
+          server-addr: 192.168.1.200:8848
+          file-extension: yml         # 配置文件格式
+          # 共享配置
+          shared-configs:
+            - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+  #    sentinel:
     gateway:
       #default-filters:
       #- Authorize=true

+ 17 - 19
lb-gateway/src/main/resources/bootstrap.yml

@@ -3,25 +3,23 @@ server:
   port: 8080
 
 # Spring
-spring:
-  application:
-    name: lb-gateway
-  profiles:
-    active: dev
-  main:
-    allow-bean-definition-overriding: true
-  cloud:
-    nacos:
-      discovery:
-      # 服务注册地址
-        server-addr: 153.37.175.42:8848
-      config:
-       # 配置中心地址
-        server-addr: 153.37.175.42:8848
-        file-extension: yml         # 配置文件格式
-        # 共享配置
-        shared-configs:
-          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+#spring:
+#  application:
+#    name: lb-gateway
+#  profiles:
+#    active: dev
+#  cloud:
+#    nacos:
+#      discovery:
+#      # 服务注册地址
+#        server-addr: 153.37.175.42:8848
+#      config:
+#       # 配置中心地址
+#        server-addr: 153.37.175.42:8848
+#        file-extension: yml         # 配置文件格式
+#        # 共享配置
+#        shared-configs:
+#          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
 #    sentinel:
 #      # 取消控制台懒加载
 #      eager: true

+ 10 - 0
lb-third/lb-third-delivery/pom.xml

@@ -13,6 +13,16 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                    <groupId>org.springframework.boot</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
             <groupId>com.ydd</groupId>
             <artifactId>lb-third-common</artifactId>
             <version>1.0</version>

+ 10 - 0
lb-third/lb-third-waimai/pom.xml

@@ -20,6 +20,16 @@
         </dependency>
         -->
         <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                    <groupId>org.springframework.boot</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <version>2.12.3</version>

+ 43 - 18
pom.xml

@@ -18,7 +18,7 @@
         <module>lb-core</module>
         <module>lb-framework</module>
         <module>lb-gateway</module>
-        <module>lb-task</module>
+        <!--<module>lb-task</module>-->
         <module>lb-feginclient</module>
     </modules>
 
@@ -45,26 +45,60 @@
         <mybatis-plus.version>3.4.2</mybatis-plus.version>
         <hutool.version>5.4.0</hutool.version>
         <alipay-easysdk.version>2.1.0</alipay-easysdk.version>
+        <spring-boot.version>2.5.5</spring-boot.version>
+        <spring-cloud.version>2020.0.4</spring-cloud.version>
+        <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
+        <alibaba.nacos.version>2.0.3</alibaba.nacos.version>
     </properties>
 
     <dependencyManagement>
         <dependencies>
-            <!-- SpringBoot的依赖配置-->
+            <!-- SpringCloud 微服务 -->
             <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>2.2.12.RELEASE</version>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <!-- SpringCloud Alibaba 微服务 -->
+            <dependency>
+                <groupId>com.alibaba.cloud</groupId>
+                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
+                <version>${spring-cloud-alibaba.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
 
+            <!-- Alibaba Nacos 配置 -->
             <dependency>
-                <groupId>org.springframework.cloud</groupId>
-                <artifactId>spring-cloud-dependencies</artifactId>
-                <version>Finchley.RELEASE</version>
+                <groupId>com.alibaba.nacos</groupId>
+                <artifactId>nacos-client</artifactId>
+                <version>${alibaba.nacos.version}</version>
+            </dependency>
+            <!-- SpringBoot的依赖配置-->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <!--<dependency>-->
+                <!--<groupId>org.springframework.boot</groupId>-->
+                <!--<artifactId>spring-boot-dependencies</artifactId>-->
+                <!--<version>2.2.12.RELEASE</version>-->
+                <!--<type>pom</type>-->
+                <!--<scope>import</scope>-->
+            <!--</dependency>-->
+
+            <!--<dependency>-->
+                <!--<groupId>org.springframework.cloud</groupId>-->
+                <!--<artifactId>spring-cloud-dependencies</artifactId>-->
+                <!--<version>Finchley.RELEASE</version>-->
+                <!--<type>pom</type>-->
+                <!--<scope>import</scope>-->
+            <!--</dependency>-->
 
             <!--阿里数据库连接池 -->
             <dependency>
@@ -206,16 +240,7 @@
     <dependencies>
         <!-- BEGIN 如果想使用 Tomcat 注释掉以下代码 -->
         <!-- SpringBoot Web容器 -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <exclusions>
-                <exclusion>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                    <groupId>org.springframework.boot</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>