!95 spring cloud 2020

Merge pull request !95 from lbw/master
This commit is contained in:
lbw 2020-12-23 13:34:15 +08:00 committed by Gitee
commit c298077151
39 changed files with 109 additions and 93 deletions

View File

@ -1,14 +1,14 @@
<p align="center"> <p align="center">
<img src="https://img.shields.io/badge/Pig-2.10-success.svg" alt="Build Status"> <img src="https://img.shields.io/badge/Pig-3.0.0-success.svg" alt="Build Status">
<img src="https://img.shields.io/badge/Spring%20Cloud-Hoxto.SR9-blue.svg" alt="Coverage Status"> <img src="https://img.shields.io/badge/Spring%20Cloud-2020-blue.svg" alt="Coverage Status">
<img src="https://img.shields.io/badge/Spring%20Boot-2.3-blue.svg" alt="Downloads"> <img src="https://img.shields.io/badge/Spring%20Boot-2.4-blue.svg" alt="Downloads">
<img src="https://img.shields.io/github/license/pig-mesh/pig"/> <img src="https://img.shields.io/github/license/pig-mesh/pig"/>
</p> </p>
## 系统说明 ## 系统说明
- 基于 Spring Cloud Hoxton 、Spring Boot 2.3、 OAuth2 的 RBAC **权限管理系统** - 基于 Spring Cloud Hoxton 、Spring Boot 2.4、 OAuth2 的 RBAC **权限管理系统**
- 基于数据驱动视图的理念封装 element-ui即使没有 vue 的使用经验也能快速上手 - 基于数据驱动视图的理念封装 element-ui即使没有 vue 的使用经验也能快速上手
- 提供对常见容器化支持 Docker、Kubernetes、Rancher2 支持 - 提供对常见容器化支持 Docker、Kubernetes、Rancher2 支持
- 提供 lambda 、stream api 、webflux 的生产实践 - 提供 lambda 、stream api 、webflux 的生产实践
@ -17,8 +17,8 @@
| 依赖 | 版本 | | 依赖 | 版本 |
| ---------------------- | ------------- | | ---------------------- | ------------- |
| Spring Boot | 2.3.7.RELEASE | | Spring Boot | 2.4.1 |
| Spring Cloud | Hoxton.SR9 | | Spring Cloud | 2020 |
| Spring Cloud Alibaba | 2.2.3.RELEASE | | Spring Cloud Alibaba | 2.2.3.RELEASE |
| Spring Security OAuth2 | 2.3.6 | | Spring Security OAuth2 | 2.3.6 |
| Mybatis Plus | 3.4.1 | | Mybatis Plus | 3.4.1 |
@ -40,7 +40,7 @@ pig
├── pig-common-mybatis -- mybatis 扩展封装 ├── pig-common-mybatis -- mybatis 扩展封装
├── pig-common-security -- 安全工具类 ├── pig-common-security -- 安全工具类
├── pig-common-swagger -- 接口文档 ├── pig-common-swagger -- 接口文档
├── pig-common-sentinel -- sentinel 扩展封装 ├── pig-common-feign -- feign 扩展封装
└── pig-common-test -- oauth2.0 单元测试扩展封装 └── pig-common-test -- oauth2.0 单元测试扩展封装
├── pig-register -- Nacos Server[8848] ├── pig-register -- Nacos Server[8848]
├── pig-gateway -- Spring Cloud Gateway网关[9999] ├── pig-gateway -- Spring Cloud Gateway网关[9999]

View File

@ -36,7 +36,7 @@ CREATE TABLE `config_info` (
-- Records of config_info -- Records of config_info
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 加解密根密码\njasypt:\n encryptor:\n password: pig #根密码\n\n# Spring 相关\nspring:\n redis:\n password:\n host: pig-redis\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pig-sentinel:5003\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n#请求处理的超时时间\nribbon:\n ReadTimeout: 10000\n ConnectTimeout: 10000\n\n# mybaits-plus配置\nmybatis-plus:\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n table-underline: true\n logic-delete-value: 1\n logic-not-delete-value: 0\n configuration:\n map-underscore-to-camel-case: true\n\n# spring security 配置\nsecurity:\n oauth2:\n resource:\n loadBalanced: true\n token-info-uri: http://pig-auth/oauth/check_token\n # 通用放行URL服务个性化请在对应配置文件覆盖\n ignore:\n urls:\n - /v2/api-docs\n - /actuator/**\n# swagger 配置\nswagger:\n title: Pig Swagger API\n license: Powered By pig4cloud\n licenseUrl: https://pig4cloud.com\n terms-of-service-url: https://pig4cloud.com\n contact:\n email: wangiegie@gmail.com\n url: https://pig4cloud.com\n authorization:\n name: pig4cloud OAuth\n auth-regex: ^.*$\n authorization-scope-list:\n - scope: server\n description: server all\n token-url-list:\n - http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}/auth/oauth/token', '841de89cde20a1a045f46001f9a89266', '2019-11-29 16:31:20', '2020-06-11 16:28:09', NULL, '127.0.0.1', '', '', '通用配置', 'null', 'null', 'yaml', 'null'); INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 加解密根密码\njasypt:\n encryptor:\n password: pig #根密码\n\n# Spring 相关\nspring:\n redis:\n password:\n host: pig-redis\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pig-sentinel:5003\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# mybaits-plus配置\nmybatis-plus:\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n table-underline: true\n logic-delete-value: 1\n logic-not-delete-value: 0\n configuration:\n map-underscore-to-camel-case: true\n\n# spring security 配置\nsecurity:\n oauth2:\n resource:\n loadBalanced: true\n token-info-uri: http://pig-auth/oauth/check_token\n # 通用放行URL服务个性化请在对应配置文件覆盖\n ignore:\n urls:\n - /v2/api-docs\n - /actuator/**\n# swagger 配置\nswagger:\n title: Pig Swagger API\n license: Powered By pig4cloud\n licenseUrl: https://pig4cloud.com\n terms-of-service-url: https://pig4cloud.com\n contact:\n email: wangiegie@gmail.com\n url: https://pig4cloud.com\n authorization:\n name: pig4cloud OAuth\n auth-regex: ^.*$\n authorization-scope-list:\n - scope: server\n description: server all\n token-url-list:\n - http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}/auth/oauth/token', '9a17f1e09f13f48de43977954dc2bd66', '2019-11-29 16:31:20', '2020-12-23 11:35:46', NULL, '0:0:0:0:0:0:0:1', '', '', '通用配置', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (2, 'pig-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '58b1b48a2888f49e667864be32edf9c1', '2019-11-29 16:31:48', '2020-01-01 18:30:58', NULL, '127.0.0.1', '', '', '认证中心配置', 'null', 'null', 'yaml', 'null'); INSERT INTO `config_info` VALUES (2, 'pig-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '58b1b48a2888f49e667864be32edf9c1', '2019-11-29 16:31:48', '2020-01-01 18:30:58', NULL, '127.0.0.1', '', '', '认证中心配置', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (3, 'pig-codegen-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(27v1agvAug87ANOVnbKdsw==)\n client-secret: ENC(VbnkopxrwgbFVKp+UxJ2pg==)\n scope: server\n\n# 数据源配置\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai\n resources:\n static-locations: classpath:/static/,classpath:/views/\n\n# 直接放行URL\nignore:\n urls:\n - /v2/api-docs\n - /actuator/**\n', 'abc702838b34d11b46e96143ccd9f367', '2019-11-29 16:32:12', '2019-11-29 16:32:12', NULL, '127.0.0.1', '', '', '代码生成配置', NULL, NULL, 'yaml', NULL); INSERT INTO `config_info` VALUES (3, 'pig-codegen-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(27v1agvAug87ANOVnbKdsw==)\n client-secret: ENC(VbnkopxrwgbFVKp+UxJ2pg==)\n scope: server\n\n# 数据源配置\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai\n resources:\n static-locations: classpath:/static/,classpath:/views/\n\n# 直接放行URL\nignore:\n urls:\n - /v2/api-docs\n - /actuator/**\n', 'abc702838b34d11b46e96143ccd9f367', '2019-11-29 16:32:12', '2019-11-29 16:32:12', NULL, '127.0.0.1', '', '', '代码生成配置', NULL, NULL, 'yaml', NULL);
INSERT INTO `config_info` VALUES (4, 'pig-gateway-dev.yml', 'DEFAULT_GROUP', 'spring:\n cloud:\n gateway:\n locator:\n enabled: true\n routes:\n # 认证中心\n - id: pig-auth\n uri: lb://pig-auth\n predicates:\n - Path=/auth/**\n filters:\n # 验证码处理\n - ValidateCodeGatewayFilter\n # 前端密码解密\n - PasswordDecoderFilter\n #UPMS 模块\n - id: pig-upms-biz\n uri: lb://pig-upms-biz\n predicates:\n - Path=/admin/**\n filters:\n # 限流配置\n - name: RequestRateLimiter\n args:\n key-resolver: \'#{@remoteAddrKeyResolver}\'\n redis-rate-limiter.replenishRate: 100\n redis-rate-limiter.burstCapacity: 200\n # 代码生成模块\n - id: pig-codegen\n uri: lb://pig-codegen\n predicates:\n - Path=/gen/**\n\n\ngateway:\n encode-key: \'thanks,pig4cloud\'\n ignore-clients:\n - test\n\nswagger:\n ignore-providers:\n - pig-auth\n - pig-codegen\n', '5cd71b235930c78e700819b944a14446', '2019-11-29 16:32:42', '2020-10-09 17:10:45', NULL, '0:0:0:0:0:0:0:1', '', '', '网关配置', '', '', 'yaml', ''); INSERT INTO `config_info` VALUES (4, 'pig-gateway-dev.yml', 'DEFAULT_GROUP', 'spring:\n cloud:\n gateway:\n locator:\n enabled: true\n routes:\n # 认证中心\n - id: pig-auth\n uri: lb://pig-auth\n predicates:\n - Path=/auth/**\n filters:\n # 验证码处理\n - ValidateCodeGatewayFilter\n # 前端密码解密\n - PasswordDecoderFilter\n #UPMS 模块\n - id: pig-upms-biz\n uri: lb://pig-upms-biz\n predicates:\n - Path=/admin/**\n filters:\n # 限流配置\n - name: RequestRateLimiter\n args:\n key-resolver: \'#{@remoteAddrKeyResolver}\'\n redis-rate-limiter.replenishRate: 100\n redis-rate-limiter.burstCapacity: 200\n # 代码生成模块\n - id: pig-codegen\n uri: lb://pig-codegen\n predicates:\n - Path=/gen/**\n\n\ngateway:\n encode-key: \'thanks,pig4cloud\'\n ignore-clients:\n - test\n\nswagger:\n ignore-providers:\n - pig-auth\n - pig-codegen\n', '5cd71b235930c78e700819b944a14446', '2019-11-29 16:32:42', '2020-10-09 17:10:45', NULL, '0:0:0:0:0:0:0:1', '', '', '网关配置', '', '', 'yaml', '');

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-auth</artifactId> <artifactId>pig-auth</artifactId>
@ -43,20 +43,20 @@
<!--断路器依赖--> <!--断路器依赖-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-sentinel</artifactId> <artifactId>pig-common-feign</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<!--upms api、model 模块--> <!--upms api、model 模块-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-upms-api</artifactId> <artifactId>pig-upms-api</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<!--security--> <!--security-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-security</artifactId> <artifactId>pig-common-security</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<!--JDBC相关--> <!--JDBC相关-->
<dependency> <dependency>

View File

@ -16,7 +16,7 @@
package com.pig4cloud.pig.auth; package com.pig4cloud.pig.auth;
import com.pig4cloud.pig.common.security.annotation.EnablePigFeignClients; import com.pig4cloud.pig.common.feign.annotation.EnablePigFeignClients;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.SpringCloudApplication;
@ -24,8 +24,8 @@ import org.springframework.cloud.client.SpringCloudApplication;
* @author lengleng * @author lengleng
* @date 2018年06月21日 认证授权中心 * @date 2018年06月21日 认证授权中心
*/ */
@SpringCloudApplication
@EnablePigFeignClients @EnablePigFeignClients
@SpringCloudApplication
public class PigAuthApplication { public class PigAuthApplication {
public static void main(String[] args) { public static void main(String[] args) {

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-core</artifactId> <artifactId>pig-common-core</artifactId>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View File

@ -21,18 +21,19 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging> <packaging>jar</packaging>
<artifactId>pig-common-sentinel</artifactId> <artifactId>pig-common-feign</artifactId>
<description>sentinel服务降级熔断、限流组件</description> <description>feign-sentinel服务降级熔断、限流组件</description>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-core</artifactId> <artifactId>pig-common-core</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
@ -43,6 +44,16 @@
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId> <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency> </dependency>
<!-- okhttp 扩展 -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>
<!-- LB 扩展 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<!--oauth server 依赖--> <!--oauth server 依赖-->
<dependency> <dependency>
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>

View File

@ -14,14 +14,14 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.sentinel; package com.pig4cloud.pig.common.feign;
import com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration; import com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration;
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import com.pig4cloud.pig.common.sentinel.feign.PigSentinelFeign; import com.pig4cloud.pig.common.feign.ext.PigSentinelFeign;
import com.pig4cloud.pig.common.sentinel.handle.PigUrlBlockHandler; import com.pig4cloud.pig.common.feign.handle.PigUrlBlockHandler;
import com.pig4cloud.pig.common.sentinel.parser.PigHeaderRequestOriginParser; import com.pig4cloud.pig.common.feign.parser.PigHeaderRequestOriginParser;
import feign.Feign; import feign.Feign;
import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@ -38,7 +38,7 @@ import org.springframework.context.annotation.Scope;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@AutoConfigureBefore(SentinelFeignAutoConfiguration.class) @AutoConfigureBefore(SentinelFeignAutoConfiguration.class)
public class SentinelAutoConfiguration { public class PigFeignAutoConfiguration {
@Bean @Bean
@Scope("prototype") @Scope("prototype")

View File

@ -14,8 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.security.annotation; package com.pig4cloud.pig.common.feign.annotation;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import java.lang.annotation.*; import java.lang.annotation.*;
@ -28,6 +29,7 @@ import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@EnableFeignClients @EnableFeignClients
@EnableAutoConfiguration(excludeName = "org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration")
public @interface EnablePigFeignClients { public @interface EnablePigFeignClients {
/** /**

View File

@ -14,15 +14,15 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.sentinel.feign; package com.pig4cloud.pig.common.feign.ext;
import com.alibaba.cloud.sentinel.feign.SentinelContractHolder; import com.alibaba.cloud.sentinel.feign.SentinelContractHolder;
import feign.Contract; import feign.Contract;
import feign.Feign; import feign.Feign;
import feign.InvocationHandlerFactory; import feign.InvocationHandlerFactory;
import feign.Target; import feign.Target;
import feign.hystrix.FallbackFactory;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.cloud.openfeign.FeignContext; import org.springframework.cloud.openfeign.FeignContext;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.sentinel.feign; package com.pig4cloud.pig.common.feign.ext;
import com.alibaba.cloud.sentinel.feign.SentinelContractHolder; import com.alibaba.cloud.sentinel.feign.SentinelContractHolder;
import com.alibaba.cloud.sentinel.feign.SentinelInvocationHandler; import com.alibaba.cloud.sentinel.feign.SentinelInvocationHandler;
@ -29,8 +29,8 @@ import feign.Feign;
import feign.InvocationHandlerFactory; import feign.InvocationHandlerFactory;
import feign.MethodMetadata; import feign.MethodMetadata;
import feign.Target; import feign.Target;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.sentinel.handle; package com.pig4cloud.pig.common.feign.handle;
import com.alibaba.csp.sentinel.Tracer; import com.alibaba.csp.sentinel.Tracer;
import com.pig4cloud.pig.common.core.util.R; import com.pig4cloud.pig.common.core.util.R;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.sentinel.handle; package com.pig4cloud.pig.common.feign.handle;
import cn.hutool.http.ContentType; import cn.hutool.http.ContentType;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;

View File

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package com.pig4cloud.pig.common.sentinel.parser; package com.pig4cloud.pig.common.feign.parser;
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;

View File

@ -0,0 +1,3 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.pig4cloud.pig.common.feign.PigFeignAutoConfiguration,\
com.pig4cloud.pig.common.feign.handle.GlobalBizExceptionHandler

View File

@ -23,7 +23,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-job</artifactId> <artifactId>pig-common-job</artifactId>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-log</artifactId> <artifactId>pig-common-log</artifactId>
@ -35,13 +35,13 @@
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-core</artifactId> <artifactId>pig-common-core</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<!--UPMS接口模块--> <!--UPMS接口模块-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-upms-api</artifactId> <artifactId>pig-upms-api</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<!--安全依赖获取上下文信息--> <!--安全依赖获取上下文信息-->
<dependency> <dependency>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-mybatis</artifactId> <artifactId>pig-common-mybatis</artifactId>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-security</artifactId> <artifactId>pig-common-security</artifactId>
@ -35,7 +35,7 @@
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-core</artifactId> <artifactId>pig-common-core</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<!--安全模块--> <!--安全模块-->
<dependency> <dependency>
@ -50,7 +50,7 @@
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-upms-api</artifactId> <artifactId>pig-upms-api</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -1,3 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.pig4cloud.pig.common.sentinel.SentinelAutoConfiguration,\
com.pig4cloud.pig.common.sentinel.handle.GlobalBizExceptionHandler

View File

@ -24,7 +24,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-swagger</artifactId> <artifactId>pig-common-swagger</artifactId>
@ -59,7 +59,7 @@
<!--网关 swagger 聚合依赖--> <!--网关 swagger 聚合依赖-->
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-gateway-core</artifactId> <artifactId>spring-cloud-gateway-server</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common-test</artifactId> <artifactId>pig-common-test</artifactId>
@ -18,7 +18,7 @@
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-security</artifactId> <artifactId>pig-common-security</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-common</artifactId> <artifactId>pig-common</artifactId>
@ -36,7 +36,7 @@
<module>pig-common-log</module> <module>pig-common-log</module>
<module>pig-common-mybatis</module> <module>pig-common-mybatis</module>
<module>pig-common-security</module> <module>pig-common-security</module>
<module>pig-common-sentinel</module> <module>pig-common-feign</module>
<module>pig-common-swagger</module> <module>pig-common-swagger</module>
<module>pig-common-test</module> <module>pig-common-test</module>
</modules> </modules>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-gateway</artifactId> <artifactId>pig-gateway</artifactId>
@ -55,8 +55,13 @@
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId> <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.alibaba.cloud</groupId>
<artifactId>pig-common-sentinel</artifactId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- LB 扩展 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency> </dependency>
<!--验证码 源码: https://github.com/pig-mesh/easy-captcha --> <!--验证码 源码: https://github.com/pig-mesh/easy-captcha -->
<dependency> <dependency>
@ -64,6 +69,11 @@
<artifactId>captcha-spring-boot-starter</artifactId> <artifactId>captcha-spring-boot-starter</artifactId>
<version>${captcha.version}</version> <version>${captcha.version}</version>
</dependency> </dependency>
<!-- 工具包依赖 -->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-core</artifactId>
</dependency>
<!--接口文档--> <!--接口文档-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>

View File

@ -18,7 +18,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-register</artifactId> <artifactId>pig-register</artifactId>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-upms</artifactId> <artifactId>pig-upms</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-upms-api</artifactId> <artifactId>pig-upms-api</artifactId>
@ -41,5 +41,10 @@
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId> <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency> </dependency>
<!--断路器依赖-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-feign</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -18,7 +18,7 @@ package com.pig4cloud.pig.admin.api.feign.factory;
import com.pig4cloud.pig.admin.api.feign.RemoteLogService; import com.pig4cloud.pig.admin.api.feign.RemoteLogService;
import com.pig4cloud.pig.admin.api.feign.fallback.RemoteLogServiceFallbackImpl; import com.pig4cloud.pig.admin.api.feign.fallback.RemoteLogServiceFallbackImpl;
import feign.hystrix.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**

View File

@ -18,7 +18,7 @@ package com.pig4cloud.pig.admin.api.feign.factory;
import com.pig4cloud.pig.admin.api.feign.RemoteTokenService; import com.pig4cloud.pig.admin.api.feign.RemoteTokenService;
import com.pig4cloud.pig.admin.api.feign.fallback.RemoteTokenServiceFallbackImpl; import com.pig4cloud.pig.admin.api.feign.fallback.RemoteTokenServiceFallbackImpl;
import feign.hystrix.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**

View File

@ -18,7 +18,7 @@ package com.pig4cloud.pig.admin.api.feign.factory;
import com.pig4cloud.pig.admin.api.feign.RemoteUserService; import com.pig4cloud.pig.admin.api.feign.RemoteUserService;
import com.pig4cloud.pig.admin.api.feign.fallback.RemoteUserServiceFallbackImpl; import com.pig4cloud.pig.admin.api.feign.fallback.RemoteUserServiceFallbackImpl;
import feign.hystrix.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-upms</artifactId> <artifactId>pig-upms</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-upms-biz</artifactId> <artifactId>pig-upms-biz</artifactId>
@ -65,11 +65,6 @@
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> </dependency>
<!--断路器依赖-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-sentinel</artifactId>
</dependency>
<!--undertow容器--> <!--undertow容器-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

View File

@ -16,7 +16,7 @@
package com.pig4cloud.pig.admin; package com.pig4cloud.pig.admin;
import com.pig4cloud.pig.common.security.annotation.EnablePigFeignClients; import com.pig4cloud.pig.common.feign.annotation.EnablePigFeignClients;
import com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer; import com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer;
import com.pig4cloud.pig.common.swagger.annotation.EnablePigSwagger2; import com.pig4cloud.pig.common.swagger.annotation.EnablePigSwagger2;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-upms</artifactId> <artifactId>pig-upms</artifactId>

View File

@ -22,7 +22,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-visual</artifactId> <artifactId>pig-visual</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-codegen</artifactId> <artifactId>pig-codegen</artifactId>
@ -49,7 +49,7 @@
<!--断路器依赖--> <!--断路器依赖-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-sentinel</artifactId> <artifactId>pig-common-feign</artifactId>
</dependency> </dependency>
<!--数据源--> <!--数据源-->
<dependency> <dependency>

View File

@ -17,7 +17,7 @@
package com.pig4cloud.pig.codegen; package com.pig4cloud.pig.codegen;
import com.pig4cloud.pig.common.datasource.annotation.EnableDynamicDataSource; import com.pig4cloud.pig.common.datasource.annotation.EnableDynamicDataSource;
import com.pig4cloud.pig.common.security.annotation.EnablePigFeignClients; import com.pig4cloud.pig.common.feign.annotation.EnablePigFeignClients;
import com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer; import com.pig4cloud.pig.common.security.annotation.EnablePigResourceServer;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.cloud.client.SpringCloudApplication;

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-visual</artifactId> <artifactId>pig-visual</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-monitor</artifactId> <artifactId>pig-monitor</artifactId>
@ -49,7 +49,7 @@
<!--断路器依赖--> <!--断路器依赖-->
<dependency> <dependency>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-common-sentinel</artifactId> <artifactId>pig-common-feign</artifactId>
</dependency> </dependency>
<!--undertow容器--> <!--undertow容器-->
<dependency> <dependency>

View File

@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-visual</artifactId> <artifactId>pig-visual</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-sentinel-dashboard</artifactId> <artifactId>pig-sentinel-dashboard</artifactId>

View File

@ -4,7 +4,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-visual</artifactId> <artifactId>pig-visual</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-xxl-job-admin</artifactId> <artifactId>pig-xxl-job-admin</artifactId>

View File

@ -21,7 +21,7 @@
<parent> <parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
</parent> </parent>
<artifactId>pig-visual</artifactId> <artifactId>pig-visual</artifactId>

29
pom.xml
View File

@ -23,20 +23,19 @@
<!-- 源码: https://gitee.com/log4j/pig-cloud-dependencies-parent --> <!-- 源码: https://gitee.com/log4j/pig-cloud-dependencies-parent -->
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig-cloud-dependencies-parent</artifactId> <artifactId>pig-cloud-dependencies-parent</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>com.pig4cloud</groupId> <groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId> <artifactId>pig</artifactId>
<version>2.10.4-SNAPSHOT</version> <version>3.0.0</version>
<name>${project.artifactId}</name> <name>${project.artifactId}</name>
<packaging>pom</packaging> <packaging>pom</packaging>
<url>https://www.pig4cloud.com</url> <url>https://www.pig4cloud.com</url>
<properties> <properties>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version> <spring-boot.version>2.4.1</spring-boot.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version> <spring-cloud.version>2020.0.0</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
@ -44,7 +43,7 @@
<spring-boot-admin.version>2.3.1</spring-boot-admin.version> <spring-boot-admin.version>2.3.1</spring-boot-admin.version>
<hutool.version>5.5.3</hutool.version> <hutool.version>5.5.3</hutool.version>
<mybatis-plus.version>3.4.1</mybatis-plus.version> <mybatis-plus.version>3.4.1</mybatis-plus.version>
<dynamic-ds.version>3.2.1</dynamic-ds.version> <dynamic-ds.version>3.2.0</dynamic-ds.version>
<captcha.version>2.2.0</captcha.version> <captcha.version>2.2.0</captcha.version>
<velocity.version>1.7</velocity.version> <velocity.version>1.7</velocity.version>
<jasypt.version>2.1.0</jasypt.version> <jasypt.version>2.1.0</jasypt.version>
@ -59,6 +58,11 @@
</properties> </properties>
<dependencies> <dependencies>
<!--bootstrap 启动器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!--配置文件处理器--> <!--配置文件处理器-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@ -193,18 +197,6 @@
</pluginManagement> </pluginManagement>
</build> </build>
<repositories>
<!-- 快照包下载, 正式版本全部源码在中央仓库-->
<repository>
<id>nexus-snapshots</id>
<name>nexus Snapshots</name>
<url>https://nexus.pigx.vip/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<profiles> <profiles>
<profile> <profile>
<id>dev</id> <id>dev</id>
@ -218,4 +210,5 @@
</activation> </activation>
</profile> </profile>
</profiles> </profiles>
</project> </project>