clazz) {
- T t = BeanUtils.instantiateClass(clazz);
- t.setId(id);
- BeanUtils.copyProperties(this, t);
- return t;
- }
-}
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java
deleted file mode 100644
index 3bdaa5d0..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/entity/form/BaseQueryForm.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.springboot.cloud.common.web.entity.form;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.springboot.cloud.common.web.entity.param.BaseParam;
-import io.swagger.annotations.ApiModel;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-
-@ApiModel
-@Slf4j
-@Data
-public class BaseQueryForm extends BaseForm {
- /**
- * 分页查询的参数,当前页数
- */
- private long current = 1;
- /**
- * 分页查询的参数,当前页面每页显示的数量
- */
- private long size = 10;
-
- /**
- * Form转化为Param
- *
- * @param clazz
- * @return
- */
- public P toParam(Class
clazz) {
- P p = BeanUtils.instantiateClass(clazz);
- BeanUtils.copyProperties(this, p);
- return p;
- }
-
- /**
- * 从form中获取page参数,用于分页查询参数
- *
- * @return
- */
- public Page getPage() {
- return new Page(this.getCurrent(), this.getSize());
- }
-
-}
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java
deleted file mode 100644
index 0154a4b0..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/entity/param/BaseParam.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.springboot.cloud.common.web.entity.param;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.springboot.cloud.common.web.entity.po.BasePo;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * Created by zhoutaoo on 2018年6月1日.
- */
-@Data
-public class BaseParam {
- private Date createdTimeStart;
- private Date createdTimeEnd;
-
- public QueryWrapper build() {
- QueryWrapper queryWrapper = new QueryWrapper();
- queryWrapper.ge(null != this.createdTimeStart, "created_time", this.createdTimeStart)
- .le(null != this.createdTimeEnd, "created_time", this.createdTimeEnd);
- return queryWrapper;
- }
-}
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java
deleted file mode 100644
index c21f2b43..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/entity/po/BasePo.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.springboot.cloud.common.web.entity.po;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-@Data
-public class BasePo implements Serializable {
- public final static String DEFAULT_USERNAME = "system";
- @TableId(type = IdType.ID_WORKER_STR)
- private String id;
-
- @TableField(fill = FieldFill.INSERT)
- private String createdBy;
-
- @TableField(fill = FieldFill.INSERT)
- private Date createdTime;
-
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private String updatedBy;
-
- @TableField(fill = FieldFill.INSERT_UPDATE)
- private Date updatedTime;
-}
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java b/common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java
deleted file mode 100644
index 226933f9..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/entity/vo/BaseVo.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.springboot.cloud.common.web.entity.vo;
-
-import com.springboot.cloud.common.web.entity.po.BasePo;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-@Data
-@NoArgsConstructor
-public class BaseVo implements Serializable {
- private String id;
-}
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java b/common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java
deleted file mode 100644
index 1184e366..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdvice.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.springboot.cloud.common.web.exception;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.common.core.exception.BaseException;
-import com.springboot.cloud.common.core.exception.SystemErrorType;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.dao.DuplicateKeyException;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.MethodArgumentNotValidException;
-import org.springframework.web.bind.MissingServletRequestParameterException;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.multipart.MultipartException;
-
-@Slf4j
-public class DefaultGlobalExceptionHandlerAdvice {
-
- @ExceptionHandler(value = {MissingServletRequestParameterException.class})
- public Result missingServletRequestParameterException(MissingServletRequestParameterException ex) {
- log.error("missing servlet request parameter exception:{}", ex.getMessage());
- return Result.fail(SystemErrorType.ARGUMENT_NOT_VALID);
- }
-
- @ExceptionHandler(value = {MultipartException.class})
- public Result uploadFileLimitException(MultipartException ex) {
- log.error("upload file size limit:{}", ex.getMessage());
- return Result.fail(SystemErrorType.UPLOAD_FILE_SIZE_LIMIT);
- }
-
- @ExceptionHandler(value = {MethodArgumentNotValidException.class})
- public Result serviceException(MethodArgumentNotValidException ex) {
- log.error("service exception:{}", ex.getMessage());
- return Result.fail(SystemErrorType.ARGUMENT_NOT_VALID, ex.getBindingResult().getFieldError().getDefaultMessage());
- }
-
- @ExceptionHandler(value = {DuplicateKeyException.class})
- public Result duplicateKeyException(DuplicateKeyException ex) {
- log.error("primary key duplication exception:{}", ex.getMessage());
- return Result.fail(SystemErrorType.DUPLICATE_PRIMARY_KEY);
- }
-
- @ExceptionHandler(value = {BaseException.class})
- public Result baseException(BaseException ex) {
- log.error("base exception:{}", ex.getMessage());
- return Result.fail(ex.getErrorType());
- }
-
- @ExceptionHandler(value = {Exception.class})
- @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- public Result exception() {
- return Result.fail();
- }
-
- @ExceptionHandler(value = {Throwable.class})
- @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- public Result throwable() {
- return Result.fail();
- }
-}
\ No newline at end of file
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java b/common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java
deleted file mode 100644
index ed8ef7be..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/handler/PoMetaObjectHandler.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.springboot.cloud.common.web.handler;
-
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.springboot.cloud.common.core.util.UserContextHolder;
-import com.springboot.cloud.common.web.entity.po.BasePo;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
-import org.apache.ibatis.reflection.MetaObject;
-
-import java.time.ZonedDateTime;
-import java.util.Date;
-
-@Slf4j
-public class PoMetaObjectHandler implements MetaObjectHandler {
- /**
- * 获取当前交易的用户,为空返回默认system
- *
- * @return
- */
- private String getCurrentUsername() {
- return StringUtils.defaultIfBlank(UserContextHolder.getInstance().getUsername(), BasePo.DEFAULT_USERNAME);
- }
-
- @Override
- public void insertFill(MetaObject metaObject) {
- this.setInsertFieldValByName("createdBy", getCurrentUsername(), metaObject);
- this.setInsertFieldValByName("createdTime", Date.from(ZonedDateTime.now().toInstant()), metaObject);
- this.updateFill(metaObject);
- }
-
- @Override
- public void updateFill(MetaObject metaObject) {
- this.setUpdateFieldValByName("updatedBy", getCurrentUsername(), metaObject);
- this.setUpdateFieldValByName("updatedTime", Date.from(ZonedDateTime.now().toInstant()), metaObject);
- }
-}
\ No newline at end of file
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java b/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java
deleted file mode 100644
index bb629404..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/interceptor/UserInterceptor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.springboot.cloud.common.web.interceptor;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.springboot.cloud.common.core.util.UserContextHolder;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.lang.Nullable;
-import org.springframework.web.servlet.HandlerInterceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Map;
-
-/**
- * 用户信息拦截器
- */
-@Slf4j
-public class UserInterceptor implements HandlerInterceptor {
- /**
- * 服务间调用token用户信息,格式为json
- * {
- * "user_name":"必须有"
- * "自定义key:"value"
- * }
- */
- public static final String X_CLIENT_TOKEN_USER = "x-client-token-user";
- /**
- * 服务间调用的认证token
- */
- public static final String X_CLIENT_TOKEN = "x-client-token";
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- //从网关获取并校验,通过校验就可信任x-client-token-user中的信息
- checkToken(request.getHeader(X_CLIENT_TOKEN));
- String userInfoString = StringUtils.defaultIfBlank(request.getHeader(X_CLIENT_TOKEN_USER), "{}");
- UserContextHolder.getInstance().setContext(new ObjectMapper().readValue(userInfoString, Map.class));
- return true;
- }
-
- private void checkToken(String token) {
- //TODO 从网关获取并校验,通过校验就可信任x-client-token-user中的信息
- log.debug("//TODO 校验token:{}", token);
- }
-
- @Override
- public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
- UserContextHolder.getInstance().clear();
- }
-}
diff --git a/common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java b/common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java
deleted file mode 100644
index 2d0257a7..00000000
--- a/common/web/src/main/java/com/springboot/cloud/common/web/redis/RedisConfig.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.springboot.cloud.common.web.redis;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.annotation.CachingConfigurerSupport;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.cache.RedisCacheConfiguration;
-import org.springframework.data.redis.cache.RedisCacheManager;
-import org.springframework.data.redis.cache.RedisCacheWriter;
-import org.springframework.data.redis.connection.RedisConnectionFactory;
-import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializationContext;
-
-import java.time.Duration;
-
-@Configuration
-public class RedisConfig extends CachingConfigurerSupport {
-
- @Bean
- public CacheManager cacheManager(RedisConnectionFactory factory) {
- //对象的序列化
- RedisSerializationContext.SerializationPair valueSerializationPair
- = RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer());
- //全局redis缓存过期时间
- RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
- .entryTtl(Duration.ofDays(1))
-// .serializeKeysWith()
- .serializeValuesWith(valueSerializationPair);
-
- return new RedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(factory), redisCacheConfiguration);
- }
-
- private Jackson2JsonRedisSerializer jackson2JsonRedisSerializer() {
- Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
- jackson2JsonRedisSerializer.setObjectMapper(objectMapper());
- return jackson2JsonRedisSerializer;
- }
-
- private ObjectMapper objectMapper() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
- return objectMapper;
- }
-}
\ No newline at end of file
diff --git a/common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java b/common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java
deleted file mode 100644
index b6043f46..00000000
--- a/common/web/src/test/java/com/springboot/cloud/common/web/exception/DefaultGlobalExceptionHandlerAdviceTest.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.springboot.cloud.common.web.exception;
-
-import org.junit.Test;
-
-public class DefaultGlobalExceptionHandlerAdviceTest {
-
- @Test
- public void testMethod() {
-
- }
-
-}
\ No newline at end of file
diff --git a/common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java b/common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java
deleted file mode 100644
index 8d761a15..00000000
--- a/common/web/src/test/java/com/springboot/cloud/common/web/interceptor/UserInterceptorTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.springboot.cloud.common.web.interceptor;
-
-import com.springboot.cloud.common.core.util.UserContextHolder;
-import org.junit.Assert;
-import org.junit.Test;
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.mock.web.MockHttpServletResponse;
-
-public class UserInterceptorTest {
- @Test
- public void preHandle_当未设置token_user_那么正常处理下一个handle() throws Exception {
- UserInterceptor userInterceptor = new UserInterceptor();
- MockHttpServletRequest request = new MockHttpServletRequest();
- MockHttpServletResponse response = new MockHttpServletResponse();
- userInterceptor.preHandle(request, response, new Object());
- }
-
- @Test
- public void preHandle_当设置token的username_那么username可以在线程中拿出来用() throws Exception {
- UserInterceptor userInterceptor = new UserInterceptor();
- MockHttpServletRequest request = new MockHttpServletRequest();
- request.addHeader("x-client-token-user", "{\"user_name\":\"zhangsan\"}");
- MockHttpServletResponse response = new MockHttpServletResponse();
- userInterceptor.preHandle(request, response, new Object());
- Assert.assertEquals(UserContextHolder.getInstance().getUsername(), "zhangsan");
- }
-}
\ No newline at end of file
diff --git a/data/kong/.gitkeep b/data/kong/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/data/mysql/.gitkeep b/data/mysql/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/data/rabbitmq/.gitkeep b/data/rabbitmq/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/data/redis/.gitkeep b/data/redis/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/demos/consumer-feign/.gitignore b/demos/consumer-feign/.gitignore
deleted file mode 100644
index 768b37c9..00000000
--- a/demos/consumer-feign/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
diff --git a/demos/consumer-feign/pom.xml b/demos/consumer-feign/pom.xml
deleted file mode 100644
index 4f061966..00000000
--- a/demos/consumer-feign/pom.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- consumer-feign
- 0.0.1-SNAPSHOT
- jar
-
- feign-consumer
- Demo Project for Spring Cloud Feign Consumer
-
-
- com.springboot.cloud
- demos
- 0.0.1-SNAPSHOT
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
-
- org.springframework.cloud
- spring-cloud-starter-contract-stub-runner
- test
-
-
-
-
diff --git a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/FeignConsumerApplication.java b/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/FeignConsumerApplication.java
deleted file mode 100644
index 4d2f3a9e..00000000
--- a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/FeignConsumerApplication.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.springboot.cloud.demos.feign;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableFeignClients
-public class FeignConsumerApplication {
- public static void main(String[] args) {
- SpringApplication.run(FeignConsumerApplication.class, args);
- }
-}
diff --git a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/rest/ClassController.java b/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/rest/ClassController.java
deleted file mode 100644
index ca39d863..00000000
--- a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/rest/ClassController.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.springboot.cloud.demos.feign.rest;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.demos.feign.service.ClassService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-@RestController
-public class ClassController {
-
- @Autowired
- private ClassService classService;
-
- @GetMapping("/classes")
- public Result hello(@RequestParam String name) {
- return classService.users(name);
- }
-
- @PostMapping("/classes")
- public Result hello(@RequestBody Map map) {
- return classService.users(map);
- }
-
-}
diff --git a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/service/ClassService.java b/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/service/ClassService.java
deleted file mode 100644
index 36b3cbc8..00000000
--- a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/service/ClassService.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.springboot.cloud.demos.feign.service;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.Map;
-
-@FeignClient(name = "producer", fallback = ClassServiceFallback.class)
-public interface ClassService {
-
- @RequestMapping(value = "/hello", method = RequestMethod.GET)
- Result users(@RequestParam("name") String name);
-
- @RequestMapping(value = "/hello/", method = RequestMethod.POST)
- Result users(@RequestBody Map map);
-}
diff --git a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/service/ClassServiceFallback.java b/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/service/ClassServiceFallback.java
deleted file mode 100644
index e0051c79..00000000
--- a/demos/consumer-feign/src/main/java/com/springboot/cloud/demos/feign/service/ClassServiceFallback.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.springboot.cloud.demos.feign.service;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.common.core.exception.SystemErrorType;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-@Component
-public class ClassServiceFallback implements ClassService {
- @Override
- public Result users(String name) {
- return Result.fail(SystemErrorType.SYSTEM_BUSY);
- }
-
- @Override
- public Result users(Map map) {
- return Result.fail(SystemErrorType.SYSTEM_BUSY);
- }
-}
diff --git a/demos/consumer-feign/src/main/resources/application.yml b/demos/consumer-feign/src/main/resources/application.yml
deleted file mode 100644
index dc567278..00000000
--- a/demos/consumer-feign/src/main/resources/application.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- zipkin:
- sender:
- type: rabbit
- enabled: true
- sleuth:
- sampler:
- probability: 1.0
- feign:
- enabled: true
- processor:
- enabled: true
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "3MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
-
-logging:
- level:
- org.springframework.cloud.sleuth: debug
- path: logs/
- file:
- max-size: 1GB
-
-feign:
- sentinel:
- enabled: true
- okhttp:
- enabled: true
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
\ No newline at end of file
diff --git a/demos/consumer-feign/src/main/resources/bootstrap.yml b/demos/consumer-feign/src/main/resources/bootstrap.yml
deleted file mode 100644
index 5a28449e..00000000
--- a/demos/consumer-feign/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-server:
- port: 8041
-spring:
- application:
- name: feign-consumer
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
- sentinel:
- transport:
- dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
- bus:
- trace:
- enabled: true
\ No newline at end of file
diff --git a/demos/consumer-feign/src/test/java/com/springboot/cloud/demos/feign/ApplicationTests.java b/demos/consumer-feign/src/test/java/com/springboot/cloud/demos/feign/ApplicationTests.java
deleted file mode 100644
index ffff92cc..00000000
--- a/demos/consumer-feign/src/test/java/com/springboot/cloud/demos/feign/ApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.demos.feign;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class ApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/demos/consumer-feign/src/test/java/com/springboot/cloud/demos/feign/rest/ClassControllerTest.java b/demos/consumer-feign/src/test/java/com/springboot/cloud/demos/feign/rest/ClassControllerTest.java
deleted file mode 100644
index 31001115..00000000
--- a/demos/consumer-feign/src/test/java/com/springboot/cloud/demos/feign/rest/ClassControllerTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.springboot.cloud.demos.feign.rest;
-
-import org.hamcrest.core.Is;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner;
-import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@AutoConfigureMockMvc
-@AutoConfigureStubRunner(ids = {"com.springboot.cloud:producer:+:stubs:8080"}, stubsMode = StubRunnerProperties.StubsMode.LOCAL)
-public class ClassControllerTest {
-
- @Autowired
- private MockMvc mvc;
-
- @Test
- public void testMethod() throws Exception {
- mvc.perform(MockMvcRequestBuilders.get("/classes").param("name", "zhangsan"))
- .andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.jsonPath("code", Is.is("000000")));
- }
-}
\ No newline at end of file
diff --git a/demos/consumer-feign/src/test/resources/application.yml b/demos/consumer-feign/src/test/resources/application.yml
deleted file mode 100644
index c68faf3d..00000000
--- a/demos/consumer-feign/src/test/resources/application.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-server:
- port: 8041
-
-spring:
- application:
- name: feign-consumer
-
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "3MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
-
-logging:
- level:
- org.springframework.web: debug
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
\ No newline at end of file
diff --git a/demos/consumer-ribbon/.gitignore b/demos/consumer-ribbon/.gitignore
deleted file mode 100644
index 3a051984..00000000
--- a/demos/consumer-ribbon/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-target/
-logs/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
diff --git a/demos/consumer-ribbon/pom.xml b/demos/consumer-ribbon/pom.xml
deleted file mode 100644
index 3df2b8e7..00000000
--- a/demos/consumer-ribbon/pom.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- consumer-ribbon
- 0.0.1-SNAPSHOT
- jar
-
- ribbon-consumer
- Demo project for Spring Cloud Ribbon Consumer
-
-
- com.springboot.cloud
- demos
- 0.0.1-SNAPSHOT
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-netflix-ribbon
-
-
-
-
diff --git a/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/RibbonConsumerApplication.java b/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/RibbonConsumerApplication.java
deleted file mode 100644
index 7e1df7e5..00000000
--- a/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/RibbonConsumerApplication.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.springboot.cloud.demos.ribbon;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.client.loadbalancer.LoadBalanced;
-import org.springframework.context.annotation.Bean;
-import org.springframework.web.client.RestTemplate;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableCircuitBreaker
-public class RibbonConsumerApplication {
-
- @Bean
- @LoadBalanced
- RestTemplate restTemplate() {
- return new RestTemplate();
- }
-
- public static void main(String[] args) {
- SpringApplication.run(RibbonConsumerApplication.class, args);
- }
-}
diff --git a/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/rest/ClassController.java b/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/rest/ClassController.java
deleted file mode 100644
index 33ab8fbc..00000000
--- a/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/rest/ClassController.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.springboot.cloud.demos.ribbon.rest;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.demos.ribbon.service.ClassService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-@RestController
-public class ClassController {
-
- @Autowired
- ClassService classService;
-
- @GetMapping("/classes")
- public Result hello(@RequestParam String name) {
- return classService.users(name);
- }
-
- @PostMapping("/classes")
- public Result hello(@RequestBody Map params) {
- return classService.users(params);
- }
-
-}
diff --git a/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/service/ClassService.java b/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/service/ClassService.java
deleted file mode 100644
index c581fb6d..00000000
--- a/demos/consumer-ribbon/src/main/java/com/springboot/cloud/demos/ribbon/service/ClassService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.springboot.cloud.demos.ribbon.service;
-
-import com.alibaba.csp.sentinel.annotation.SentinelResource;
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.common.core.exception.SystemErrorType;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestTemplate;
-
-import java.util.Map;
-
-@Service
-public class ClassService {
-
- @Autowired
- RestTemplate restTemplate;
-
- @SentinelResource(fallback = "usersFallback")
- public Result users(String name) {
- return restTemplate.getForEntity("http://producer/product/?name={1}", Result.class, name).getBody();
- }
-
- @SentinelResource(fallback = "usersFallback")
- public Result users(Map map) {
- return restTemplate.postForEntity("http://producer/product/", map, Result.class).getBody();
- }
-
- public Result usersFallback(String name) {
- return Result.fail(SystemErrorType.SYSTEM_BUSY);
- }
-
- public Result usersFallback(Map map) {
- return Result.fail(SystemErrorType.SYSTEM_BUSY);
- }
-}
diff --git a/demos/consumer-ribbon/src/main/resources/application.yml b/demos/consumer-ribbon/src/main/resources/application.yml
deleted file mode 100644
index 0c113cbe..00000000
--- a/demos/consumer-ribbon/src/main/resources/application.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- zipkin:
- enabled: true
- sender:
- type: rabbit
- sleuth:
- sampler:
- probability: 1.0
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
-
-logging:
- level:
- org.springframework.web: debug
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
\ No newline at end of file
diff --git a/demos/consumer-ribbon/src/main/resources/bootstrap.yml b/demos/consumer-ribbon/src/main/resources/bootstrap.yml
deleted file mode 100644
index aa1929be..00000000
--- a/demos/consumer-ribbon/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-server:
- port: 8020
-spring:
- application:
- name: ribbon-consumer
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
- sentinel:
- transport:
- dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
- bus:
- trace:
- enabled: true
\ No newline at end of file
diff --git a/demos/consumer-ribbon/src/test/java/com/springboot/cloud/demos/ribbon/RibbonConsumerApplicationTests.java b/demos/consumer-ribbon/src/test/java/com/springboot/cloud/demos/ribbon/RibbonConsumerApplicationTests.java
deleted file mode 100644
index 9f476395..00000000
--- a/demos/consumer-ribbon/src/test/java/com/springboot/cloud/demos/ribbon/RibbonConsumerApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.demos.ribbon;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class RibbonConsumerApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/demos/pom.xml b/demos/pom.xml
deleted file mode 100644
index 009a7870..00000000
--- a/demos/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- demos
- 0.0.1-SNAPSHOT
- pom
-
- demos
- Demo Center Monitor project for Spring Boot
-
-
- com.springboot.cloud
- cloud
- 0.0.1-SNAPSHOT
-
-
-
- producer
- producer-jpa
- consumer-feign
- consumer-ribbon
-
-
-
-
- com.springboot.cloud
- core
- 0.0.1-SNAPSHOT
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
diff --git a/demos/producer-jpa/.gitignore b/demos/producer-jpa/.gitignore
deleted file mode 100644
index 758a02c7..00000000
--- a/demos/producer-jpa/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-target/
-logs/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-nbproject/private/
-build/
-nbbuild/
-dist/
-nbdist/
-.nb-gradle/
\ No newline at end of file
diff --git a/demos/producer-jpa/pom.xml b/demos/producer-jpa/pom.xml
deleted file mode 100644
index 325cf5b5..00000000
--- a/demos/producer-jpa/pom.xml
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- producer-jpa
- 0.0.1-SNAPSHOT
- jar
-
- producer-jpa
- Demo project for Spring Cloud Producer
-
-
- com.springboot.cloud
- demos
- 0.0.1-SNAPSHOT
-
-
-
- UTF-8
- UTF-8
- 1.8
- 1.8
- http://localhost:9001
-
-
-
-
- com.springboot.cloud
- web
- 0.0.1-SNAPSHOT
-
-
-
- com.ctrip.framework.apollo
- apollo-client
- 1.1.0
-
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
-
- org.springframework.boot
- spring-boot-starter-data-rest
-
-
- org.springframework.data
- spring-data-rest-hal-browser
-
-
-
- com.alibaba
- druid-spring-boot-starter
- 1.1.9
-
-
-
- mysql
- mysql-connector-java
- 5.1.39
-
-
-
- io.springfox
- springfox-swagger2
- 2.9.2
-
-
- io.springfox
- springfox-swagger-ui
- 2.9.2
-
-
-
-
-
-
- io.github.swagger2markup
- swagger2markup-maven-plugin
- 1.3.4
-
- ${swagger.input.host}/v2/api-docs
- src/main/docs/asciidoc/generated
-
- ASCIIDOC
-
-
-
-
-
- org.asciidoctor
- asciidoctor-maven-plugin
- 1.5.6
-
- src/main/docs/asciidoc/generated
- src/main/gst/asciidoc/html
- html
- coderay
-
- book
- left
- 3
-
-
-
-
-
-
-
-
-
- com.spotify
- docker-maven-plugin
- 1.2.0
-
-
- cike/${project.artifactId}
- ${project.basedir}/src/main/docker
- true
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
-
-
diff --git a/demos/producer-jpa/src/main/db/db.sql b/demos/producer-jpa/src/main/db/db.sql
deleted file mode 100644
index cc716329..00000000
--- a/demos/producer-jpa/src/main/db/db.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-DROP DATABASE IF EXISTS sc_product;
-CREATE DATABASE sc_product DEFAULT CHARSET utf8mb4;
-USE sc_product;
-
-DROP TABLE IF EXISTS product;
-CREATE TABLE product
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '编号',
- name VARCHAR(200) NOT NULL COMMENT '产品名称',
- description VARCHAR(500) COMMENT '产品描述',
- deleted VARCHAR(1) DEFAULT 'N' NOT NULL COMMENT '是否已删除Y:已删除,N:未删除',
- created_time datetime DEFAULT now() NOT NULL COMMENT '创建时间',
- updated_time datetime DEFAULT now() NOT NULL COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '产品表';
\ No newline at end of file
diff --git a/demos/producer-jpa/src/main/docker/Dockerfile b/demos/producer-jpa/src/main/docker/Dockerfile
deleted file mode 100644
index a0928cfd..00000000
--- a/demos/producer-jpa/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:alpine
-VOLUME /tmp
-ADD producer-jpa-0.0.1-SNAPSHOT.jar app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/ProducerApplication.java b/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/ProducerApplication.java
deleted file mode 100644
index db115537..00000000
--- a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/ProducerApplication.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.springboot.cloud.demos.producer.jpa;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableCircuitBreaker
-public class ProducerApplication {
- public static void main(String[] args) {
- SpringApplication.run(ProducerApplication.class, args);
- }
-}
diff --git a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/dao/ProductMapper.java b/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/dao/ProductMapper.java
deleted file mode 100644
index 5fbeadc6..00000000
--- a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/dao/ProductMapper.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.springboot.cloud.demos.producer.jpa.dao;
-
-import com.springboot.cloud.demos.producer.jpa.entity.po.Product;
-import org.springframework.data.repository.PagingAndSortingRepository;
-import org.springframework.data.rest.core.annotation.RepositoryRestResource;
-
-@RepositoryRestResource
-public interface ProductMapper extends PagingAndSortingRepository {
-}
\ No newline at end of file
diff --git a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/entity/po/JpaBasePo.java b/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/entity/po/JpaBasePo.java
deleted file mode 100644
index 4cc53f68..00000000
--- a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/entity/po/JpaBasePo.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.springboot.cloud.demos.producer.jpa.entity.po;
-
-import lombok.Data;
-
-import javax.persistence.MappedSuperclass;
-import java.io.Serializable;
-import java.time.ZonedDateTime;
-import java.util.Date;
-
-@Data
-@MappedSuperclass
-public class JpaBasePo implements Serializable {
- public final static String DEFAULT_USERNAME = "system";
- private String createdBy = DEFAULT_USERNAME;
- private String updatedBy = DEFAULT_USERNAME;
- private Date createdTime = Date.from(ZonedDateTime.now().toInstant());
- private Date updatedTime = Date.from(ZonedDateTime.now().toInstant());
-}
diff --git a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/entity/po/Product.java b/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/entity/po/Product.java
deleted file mode 100644
index 2f4c6e09..00000000
--- a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/entity/po/Product.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.springboot.cloud.demos.producer.jpa.entity.po;
-
-import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Entity
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class Product extends JpaBasePo {
-
- @Id
- @GeneratedValue(generator = "productGenerator")
- @GenericGenerator(name = "productGenerator", strategy = "uuid")
- private String id;
-
- @Column(nullable = false)
- private String name;
-
- @Column
- private String description;
-}
diff --git a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/exception/GlobalExceptionHandlerAdvice.java b/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/exception/GlobalExceptionHandlerAdvice.java
deleted file mode 100644
index 86ea84a7..00000000
--- a/demos/producer-jpa/src/main/java/com/springboot/cloud/demos/producer/jpa/exception/GlobalExceptionHandlerAdvice.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.springboot.cloud.demos.producer.jpa.exception;
-
-import com.springboot.cloud.common.web.exception.DefaultGlobalExceptionHandlerAdvice;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@RestControllerAdvice
-public class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice {
-
-}
\ No newline at end of file
diff --git a/demos/producer-jpa/src/main/resources/application.yml b/demos/producer-jpa/src/main/resources/application.yml
deleted file mode 100644
index a28e126b..00000000
--- a/demos/producer-jpa/src/main/resources/application.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- redis:
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
- ##password: ${REDIS_PASSWORD:}
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:${DATASOURCE_DBTYPE:mysql}://${DATASOURCE_HOST:localhost}:${DATASOURCE_PORT:3306}/sc_product?characterEncoding=UTF-8&useUnicode=true&useSSL=false
- username: ${DATASOURCE_USERNAME:root}
- password: ${DATASOURCE_PASSWORD:root123}
- zipkin:
- enabled: true
- sender:
- type: rabbit
- sleuth:
- sampler:
- probability: 1.0
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
- jpa:
- show-sql: true
- generate-ddl: true
-
-logging:
- level:
- org.springframework.web: debug
- java.sql.PreparedStatement: debug
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
diff --git a/demos/producer-jpa/src/main/resources/bootstrap.yml b/demos/producer-jpa/src/main/resources/bootstrap.yml
deleted file mode 100644
index 4676f898..00000000
--- a/demos/producer-jpa/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-server:
- port: 9002
-spring:
- application:
- name: producer-jpa
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
- sentinel:
- transport:
- dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
- bus:
- trace:
- enabled: true
\ No newline at end of file
diff --git a/demos/producer-jpa/src/test/java/com/springboot/cloud/demos/producer/jpa/rest/ProductControllerTests.java b/demos/producer-jpa/src/test/java/com/springboot/cloud/demos/producer/jpa/rest/ProductControllerTests.java
deleted file mode 100644
index d4c24952..00000000
--- a/demos/producer-jpa/src/test/java/com/springboot/cloud/demos/producer/jpa/rest/ProductControllerTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.springboot.cloud.demos.producer.jpa.rest;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@AutoConfigureMockMvc
-public class ProductControllerTests {
-
- @Autowired
- private MockMvc mvc;
-
- @Test
- public void query() throws Exception {
- mvc.perform(MockMvcRequestBuilders.get("/products").param("page", "0"))
- .andExpect(MockMvcResultMatchers.status().isOk());
- }
-
-}
\ No newline at end of file
diff --git a/demos/producer-jpa/src/test/resources/application.yml b/demos/producer-jpa/src/test/resources/application.yml
deleted file mode 100644
index d478904a..00000000
--- a/demos/producer-jpa/src/test/resources/application.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-server:
- port: 9001
-
-spring:
- datasource:
- druid:
- web-stat-filter:
- enabled: false
- url: jdbc:h2:mem:sc_product;MODE=mysql;INIT=RUNSCRIPT FROM './src/main/db/db.sql'
- username: sa
- password:
- driver-class-name: org.h2.Driver
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
- flyway:
- locations: classpath:.
- baseline-on-migrate: true
- devtools:
- livereload:
- enabled: true
- jpa:
- show-sql: true
-
-logging:
- level:
- org.springframework.web: info
- java.sql.PreparedStatement: info
- java.sql.Statement: info
- Java.sql.Connection: info
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
\ No newline at end of file
diff --git a/demos/producer/.gitignore b/demos/producer/.gitignore
deleted file mode 100644
index 758a02c7..00000000
--- a/demos/producer/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-target/
-logs/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-nbproject/private/
-build/
-nbbuild/
-dist/
-nbdist/
-.nb-gradle/
\ No newline at end of file
diff --git a/demos/producer/pom.xml b/demos/producer/pom.xml
deleted file mode 100644
index 21dd6e78..00000000
--- a/demos/producer/pom.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- producer
- 0.0.1-SNAPSHOT
- jar
-
- producer
- Demo Project for Spring Cloud Producer
-
-
- com.springboot.cloud
- demos
- 0.0.1-SNAPSHOT
-
-
-
- UTF-8
- UTF-8
- 1.8
- 1.8
-
-
-
-
- com.springboot.cloud
- web
- 0.0.1-SNAPSHOT
-
-
-
- org.springframework.cloud
- spring-cloud-starter-config
-
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- 1.3.2
-
-
- com.alibaba
- druid-spring-boot-starter
- 1.1.9
-
-
-
- mysql
- mysql-connector-java
- 5.1.39
-
-
- org.flywaydb
- flyway-core
- test
- 5.2.4
-
-
-
- io.springfox
- springfox-swagger2
- 2.9.2
-
-
- io.springfox
- springfox-swagger-ui
- 2.9.2
-
-
-
- org.springframework.cloud
- spring-cloud-starter-contract-verifier
- test
-
-
-
-
-
-
- io.github.swagger2markup
- swagger2markup-maven-plugin
- 1.3.4
-
- http://localhost:8001/v2/api-docs
- src/main/docs/asciidoc/generated
-
- ASCIIDOC
-
-
-
-
-
- org.asciidoctor
- asciidoctor-maven-plugin
- 1.5.6
-
- src/main/docs/asciidoc/generated
- src/main/gst/asciidoc/html
- html
- coderay
-
- book
- left
- 3
-
-
-
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-contract-maven-plugin
- 2.0.0.RELEASE
-
- true
-
-
- com.springboot.cloud.demos.producer.MvcMockTest
-
-
-
-
- com.spotify
- docker-maven-plugin
- 1.2.0
-
-
- cike/${project.artifactId}
- ${project.basedir}/src/main/docker
- true
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
-
-
diff --git a/demos/producer/src/main/db/db.sql b/demos/producer/src/main/db/db.sql
deleted file mode 100644
index cc716329..00000000
--- a/demos/producer/src/main/db/db.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-DROP DATABASE IF EXISTS sc_product;
-CREATE DATABASE sc_product DEFAULT CHARSET utf8mb4;
-USE sc_product;
-
-DROP TABLE IF EXISTS product;
-CREATE TABLE product
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '编号',
- name VARCHAR(200) NOT NULL COMMENT '产品名称',
- description VARCHAR(500) COMMENT '产品描述',
- deleted VARCHAR(1) DEFAULT 'N' NOT NULL COMMENT '是否已删除Y:已删除,N:未删除',
- created_time datetime DEFAULT now() NOT NULL COMMENT '创建时间',
- updated_time datetime DEFAULT now() NOT NULL COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '产品表';
\ No newline at end of file
diff --git a/demos/producer/src/main/docker/Dockerfile b/demos/producer/src/main/docker/Dockerfile
deleted file mode 100644
index e3b0acd5..00000000
--- a/demos/producer/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:alpine
-VOLUME /tmp
-ADD producer-0.0.1-SNAPSHOT.jar app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/demos/producer/src/main/docs/asciidoc/generated/definitions.adoc b/demos/producer/src/main/docs/asciidoc/generated/definitions.adoc
deleted file mode 100644
index 10b794ad..00000000
--- a/demos/producer/src/main/docs/asciidoc/generated/definitions.adoc
+++ /dev/null
@@ -1,141 +0,0 @@
-
-[[_definitions]]
-== Definitions
-
-[[_result]]
-=== Result
-rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**code** +
-__required__|处理结果code|string
-|**data** +
-__optional__|处理结果数据信息|object
-|**mesg** +
-__optional__|处理结果描述信息|string
-|===
-
-
-[[_dd4f2c715e4502a883960a3da7798745]]
-=== Result«List«User»»
-rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**code** +
-__required__|处理结果code|string
-|**data** +
-__optional__|处理结果数据信息|< <<_user,user>>> array
-|**mesg** +
-__optional__|处理结果描述信息|string
-|===
-
-
-[[_c325cb68f7bdaad8aa7df5c0208b027f]]
-=== Result«User»
-rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**code** +
-__required__|处理结果code|string
-|**data** +
-__optional__|处理结果数据信息|<<_user,user>>
-|**mesg** +
-__optional__|处理结果描述信息|string
-|===
-
-
-[[_c5e8d1d11ddb429572042cb1fe53c7a5]]
-=== Result«long»
-rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**code** +
-__required__|处理结果code|string
-|**data** +
-__optional__|处理结果数据信息|integer(int64)
-|**mesg** +
-__optional__|处理结果描述信息|string
-|===
-
-
-[[_user]]
-=== User
-
-[options="header", cols=".^3,.^4"]
-|===
-|Name|Schema
-|**createdBy** +
-__optional__|string
-|**createdTime** +
-__optional__|string(date-time)
-|**id** +
-__optional__|integer(int64)
-|**mobile** +
-__optional__|string
-|**name** +
-__optional__|string
-|**password** +
-__optional__|string
-|**updatedBy** +
-__optional__|string
-|**updatedTime** +
-__optional__|string(date-time)
-|**username** +
-__optional__|string
-|===
-
-
-[[_useraddform]]
-=== UserAddForm
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**mobile** +
-__optional__|用户手机号码|string
-|**name** +
-__required__|用户姓名|string
-|**password** +
-__required__|密码|string
-|**username** +
-__required__|用户名|string
-|===
-
-
-[[_userqueryform]]
-=== UserQueryForm
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**createdDate** +
-__optional__||string(date-time)
-|**name** +
-__required__|用户姓名|string
-|===
-
-
-[[_userupdateform]]
-=== UserUpdateForm
-
-[options="header", cols=".^3,.^11,.^4"]
-|===
-|Name|Description|Schema
-|**name** +
-__optional__|用户姓名|string
-|===
-
-
-
diff --git a/demos/producer/src/main/docs/asciidoc/generated/overview.adoc b/demos/producer/src/main/docs/asciidoc/generated/overview.adoc
deleted file mode 100644
index 2f3ef520..00000000
--- a/demos/producer/src/main/docs/asciidoc/generated/overview.adoc
+++ /dev/null
@@ -1,30 +0,0 @@
-= Spring Boot中使用Swagger2构建RESTful APIs
-
-
-[[_overview]]
-== Overview
-更多Spring Boot API
-
-
-=== Version information
-[%hardbreaks]
-__Version__ : 2.0
-
-
-=== License information
-[%hardbreaks]
-__Terms of service__ : http://www.cikeonline.com/
-
-
-=== URI scheme
-[%hardbreaks]
-__Host__ : localhost:8001
-__BasePath__ : /
-
-
-=== Tags
-
-* eureka-producer : 用户管理的API
-
-
-
diff --git a/demos/producer/src/main/docs/asciidoc/generated/paths.adoc b/demos/producer/src/main/docs/asciidoc/generated/paths.adoc
deleted file mode 100644
index 53e239d7..00000000
--- a/demos/producer/src/main/docs/asciidoc/generated/paths.adoc
+++ /dev/null
@@ -1,283 +0,0 @@
-
-[[_paths]]
-== Paths
-
-[[_addusingpost]]
-=== 新增用户
-....
-POST /users
-....
-
-
-==== Description
-新增一个用户
-
-
-==== Parameters
-
-[options="header", cols=".^2,.^3,.^9,.^4"]
-|===
-|Type|Name|Description|Schema
-|**Body**|**userAddForm** +
-__required__|新增用户form表单|<<_useraddform,useraddform>>
-|===
-
-
-==== Responses
-
-[options="header", cols=".^2,.^14,.^4"]
-|===
-|HTTP Code|Description|Schema
-|**200**|OK|<<_c5e8d1d11ddb429572042cb1fe53c7a5,result«long»>>
-|**201**|Created|No Content
-|**401**|Unauthorized|No Content
-|**403**|Forbidden|No Content
-|**404**|Not Found|No Content
-|===
-
-
-==== Consumes
-
-* `application/json`
-
-
-==== Produces
-
-* `*/*`
-
-
-==== Tags
-
-* eureka-producer
-
-
-[[_searchusingpost]]
-=== 搜索用户
-....
-POST /users/
-....
-
-
-==== Description
-根据条件查询用户信息
-
-
-==== Parameters
-
-[options="header", cols=".^2,.^3,.^9,.^4"]
-|===
-|Type|Name|Description|Schema
-|**Body**|**userQueryForm** +
-__required__|用户查询参数|<<_userqueryform,userqueryform>>
-|===
-
-
-==== Responses
-
-[options="header", cols=".^2,.^14,.^4"]
-|===
-|HTTP Code|Description|Schema
-|**200**|OK|<<_dd4f2c715e4502a883960a3da7798745,result«list«user»»>>
-|**201**|Created|No Content
-|**401**|Unauthorized|No Content
-|**403**|Forbidden|No Content
-|**404**|Not Found|No Content
-|===
-
-
-==== Consumes
-
-* `application/json`
-
-
-==== Produces
-
-* `*/*`
-
-
-==== Tags
-
-* eureka-producer
-
-
-[[_queryusingget]]
-=== 查询用户
-....
-GET /users/
-....
-
-
-==== Description
-根据条件查询用户信息,简单查询
-
-
-==== Parameters
-
-[options="header", cols=".^2,.^3,.^9,.^4"]
-|===
-|Type|Name|Description|Schema
-|**Query**|**name** +
-__required__|用户姓名|string
-|===
-
-
-==== Responses
-
-[options="header", cols=".^2,.^14,.^4"]
-|===
-|HTTP Code|Description|Schema
-|**200**|OK|<<_dd4f2c715e4502a883960a3da7798745,result«list«user»»>>
-|**401**|Unauthorized|No Content
-|**403**|Forbidden|No Content
-|**404**|Not Found|No Content
-|===
-
-
-==== Produces
-
-* `*/*`
-
-
-==== Tags
-
-* eureka-producer
-
-
-[[_getusingget]]
-=== 获取用户
-....
-GET /users/{id}
-....
-
-
-==== Description
-获取指定用户信息
-
-
-==== Parameters
-
-[options="header", cols=".^2,.^3,.^9,.^4"]
-|===
-|Type|Name|Description|Schema
-|**Path**|**id** +
-__required__|用户ID|integer(int64)
-|===
-
-
-==== Responses
-
-[options="header", cols=".^2,.^14,.^4"]
-|===
-|HTTP Code|Description|Schema
-|**200**|OK|<<_c325cb68f7bdaad8aa7df5c0208b027f,result«user»>>
-|**401**|Unauthorized|No Content
-|**403**|Forbidden|No Content
-|**404**|Not Found|No Content
-|===
-
-
-==== Produces
-
-* `*/*`
-
-
-==== Tags
-
-* eureka-producer
-
-
-[[_updateusingput]]
-=== 修改用户
-....
-PUT /users/{id}
-....
-
-
-==== Description
-修改指定用户信息
-
-
-==== Parameters
-
-[options="header", cols=".^2,.^3,.^9,.^4"]
-|===
-|Type|Name|Description|Schema
-|**Path**|**id** +
-__required__|用户ID|integer(int64)
-|**Body**|**userUpdateForm** +
-__required__|用户实体|<<_userupdateform,userupdateform>>
-|===
-
-
-==== Responses
-
-[options="header", cols=".^2,.^14,.^4"]
-|===
-|HTTP Code|Description|Schema
-|**200**|OK|<<_result,result>>
-|**201**|Created|No Content
-|**401**|Unauthorized|No Content
-|**403**|Forbidden|No Content
-|**404**|Not Found|No Content
-|===
-
-
-==== Consumes
-
-* `application/json`
-
-
-==== Produces
-
-* `*/*`
-
-
-==== Tags
-
-* eureka-producer
-
-
-[[_deleteusingdelete]]
-=== 删除用户
-....
-DELETE /users/{id}
-....
-
-
-==== Description
-根据url的id来指定删除对象
-
-
-==== Parameters
-
-[options="header", cols=".^2,.^3,.^9,.^4"]
-|===
-|Type|Name|Description|Schema
-|**Path**|**id** +
-__required__|用户ID|integer(int64)
-|===
-
-
-==== Responses
-
-[options="header", cols=".^2,.^14,.^4"]
-|===
-|HTTP Code|Description|Schema
-|**200**|OK|<<_result,result>>
-|**204**|No Content|No Content
-|**401**|Unauthorized|No Content
-|**403**|Forbidden|No Content
-|===
-
-
-==== Produces
-
-* `*/*`
-
-
-==== Tags
-
-* eureka-producer
-
-
-
diff --git a/demos/producer/src/main/docs/asciidoc/generated/security.adoc b/demos/producer/src/main/docs/asciidoc/generated/security.adoc
deleted file mode 100644
index 139597f9..00000000
--- a/demos/producer/src/main/docs/asciidoc/generated/security.adoc
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/demos/producer/src/main/docs/asciidoc/html/definitions.html b/demos/producer/src/main/docs/asciidoc/html/definitions.html
deleted file mode 100644
index adcea9b4..00000000
--- a/demos/producer/src/main/docs/asciidoc/html/definitions.html
+++ /dev/null
@@ -1,873 +0,0 @@
-
-
-
-
-
-
-
-Definitions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-code
-required |
-处理结果code |
-string |
-
-
-data
-optional |
-处理结果数据信息 |
-object |
-
-
-mesg
-optional |
-处理结果描述信息 |
-string |
-
-
-
-
-
-
-
-
rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-code
-required |
-处理结果code |
-string |
-
-
-data
-optional |
-处理结果数据信息 |
-< User > array |
-
-
-mesg
-optional |
-处理结果描述信息 |
-string |
-
-
-
-
-
-
-
-
rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-code
-required |
-处理结果code |
-string |
-
-
-data
-optional |
-处理结果数据信息 |
-User |
-
-
-mesg
-optional |
-处理结果描述信息 |
-string |
-
-
-
-
-
-
-
-
rest请求的返回模型,所有rest正常都返回该类的对象
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-code
-required |
-处理结果code |
-string |
-
-
-data
-optional |
-处理结果数据信息 |
-integer(int64) |
-
-
-mesg
-optional |
-处理结果描述信息 |
-string |
-
-
-
-
-
-
-
-
-
-
-
-
-
-Name |
-Schema |
-
-
-
-
-createdBy
-optional |
-string |
-
-
-createdTime
-optional |
-string(date-time) |
-
-
-id
-optional |
-integer(int64) |
-
-
-mobile
-optional |
-string |
-
-
-name
-optional |
-string |
-
-
-password
-optional |
-string |
-
-
-updatedBy
-optional |
-string |
-
-
-updatedTime
-optional |
-string(date-time) |
-
-
-username
-optional |
-string |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-mobile
-optional |
-用户手机号码 |
-string |
-
-
-name
-required |
-用户姓名 |
-string |
-
-
-password
-required |
-密码 |
-string |
-
-
-username
-required |
-用户名 |
-string |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-createdDate
-optional |
-
-string(date-time) |
-
-
-name
-required |
-用户姓名 |
-string |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Name |
-Description |
-Schema |
-
-
-
-
-name
-optional |
-用户姓名 |
-string |
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demos/producer/src/main/docs/asciidoc/html/overview.html b/demos/producer/src/main/docs/asciidoc/html/overview.html
deleted file mode 100644
index bdb70bbd..00000000
--- a/demos/producer/src/main/docs/asciidoc/html/overview.html
+++ /dev/null
@@ -1,581 +0,0 @@
-
-
-
-
-
-
-
-Spring Boot中使用Swagger2构建RESTful APIs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Host : localhost:8001
-BasePath : /
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demos/producer/src/main/docs/asciidoc/html/paths.html b/demos/producer/src/main/docs/asciidoc/html/paths.html
deleted file mode 100644
index 59378f3a..00000000
--- a/demos/producer/src/main/docs/asciidoc/html/paths.html
+++ /dev/null
@@ -1,1259 +0,0 @@
-
-
-
-
-
-
-
-Paths
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Type |
-Name |
-Description |
-Schema |
-
-
-
-
-Body |
-userAddForm
-required |
-新增用户form表单 |
-UserAddForm |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTTP Code |
-Description |
-Schema |
-
-
-
-
-200 |
-OK |
-Result«long» |
-
-
-201 |
-Created |
-No Content |
-
-
-401 |
-Unauthorized |
-No Content |
-
-
-403 |
-Forbidden |
-No Content |
-
-
-404 |
-Not Found |
-No Content |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Type |
-Name |
-Description |
-Schema |
-
-
-
-
-Body |
-userQueryForm
-required |
-用户查询参数 |
-UserQueryForm |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTTP Code |
-Description |
-Schema |
-
-
-
-
-200 |
-OK |
-Result«List«User»» |
-
-
-201 |
-Created |
-No Content |
-
-
-401 |
-Unauthorized |
-No Content |
-
-
-403 |
-Forbidden |
-No Content |
-
-
-404 |
-Not Found |
-No Content |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Type |
-Name |
-Description |
-Schema |
-
-
-
-
-Query |
-name
-required |
-用户姓名 |
-string |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTTP Code |
-Description |
-Schema |
-
-
-
-
-200 |
-OK |
-Result«List«User»» |
-
-
-401 |
-Unauthorized |
-No Content |
-
-
-403 |
-Forbidden |
-No Content |
-
-
-404 |
-Not Found |
-No Content |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Type |
-Name |
-Description |
-Schema |
-
-
-
-
-Path |
-id
-required |
-用户ID |
-integer(int64) |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTTP Code |
-Description |
-Schema |
-
-
-
-
-200 |
-OK |
-Result«User» |
-
-
-401 |
-Unauthorized |
-No Content |
-
-
-403 |
-Forbidden |
-No Content |
-
-
-404 |
-Not Found |
-No Content |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Type |
-Name |
-Description |
-Schema |
-
-
-
-
-Path |
-id
-required |
-用户ID |
-integer(int64) |
-
-
-Body |
-userUpdateForm
-required |
-用户实体 |
-UserUpdateForm |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTTP Code |
-Description |
-Schema |
-
-
-
-
-200 |
-OK |
-Result |
-
-
-201 |
-Created |
-No Content |
-
-
-401 |
-Unauthorized |
-No Content |
-
-
-403 |
-Forbidden |
-No Content |
-
-
-404 |
-Not Found |
-No Content |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Type |
-Name |
-Description |
-Schema |
-
-
-
-
-Path |
-id
-required |
-用户ID |
-integer(int64) |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTTP Code |
-Description |
-Schema |
-
-
-
-
-200 |
-OK |
-Result |
-
-
-204 |
-No Content |
-No Content |
-
-
-401 |
-Unauthorized |
-No Content |
-
-
-403 |
-Forbidden |
-No Content |
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demos/producer/src/main/docs/asciidoc/html/security.html b/demos/producer/src/main/docs/asciidoc/html/security.html
deleted file mode 100644
index 5099c4b9..00000000
--- a/demos/producer/src/main/docs/asciidoc/html/security.html
+++ /dev/null
@@ -1,531 +0,0 @@
-
-
-
-
-
-
-
-Untitled
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/ProducerApplication.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/ProducerApplication.java
deleted file mode 100644
index 8f245e33..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/ProducerApplication.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.springboot.cloud.demos.producer;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableCircuitBreaker
-public class ProducerApplication {
- public static void main(String[] args) {
- SpringApplication.run(ProducerApplication.class, args);
- }
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/BusConfig.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/BusConfig.java
deleted file mode 100644
index c2446c43..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/BusConfig.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.springboot.cloud.demos.producer.config;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.core.Binding;
-import org.springframework.amqp.core.BindingBuilder;
-import org.springframework.amqp.core.Queue;
-import org.springframework.amqp.core.TopicExchange;
-import org.springframework.amqp.rabbit.connection.ConnectionFactory;
-import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
-import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@Slf4j
-public class BusConfig {
-
- public static final String QUEUE_NAME = "mq";
- public static final String EXCHANGE_NAME = "spring-boot-exchange";
-
- @Bean
- Queue queue() {
- log.info("queue name:{}", QUEUE_NAME);
- return new Queue(QUEUE_NAME, false);
- }
-
- @Bean
- TopicExchange exchange() {
- log.info("exchange:{}", EXCHANGE_NAME);
- return new TopicExchange(EXCHANGE_NAME);
- }
-
- @Bean
- Binding binding(Queue queue, TopicExchange exchange) {
- log.info("binding {} to {} with {}", queue, exchange, QUEUE_NAME);
- return BindingBuilder.bind(queue).to(exchange).with(QUEUE_NAME);
- }
-
- @Bean
- SimpleMessageListenerContainer mqContainer(ConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) {
- log.info("init mqContainer");
- SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
- container.setQueueNames(QUEUE_NAME);
- container.setMessageListener(listenerAdapter);
- return container;
- }
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/MyRedisConfig.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/MyRedisConfig.java
deleted file mode 100644
index e0dc6e8a..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/MyRedisConfig.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.demos.producer.config;
-
-import com.springboot.cloud.common.web.redis.RedisConfig;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@EnableCaching
-public class MyRedisConfig extends RedisConfig {
-
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/MybatisConfig.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/MybatisConfig.java
deleted file mode 100644
index 2ef77c0f..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/MybatisConfig.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.springboot.cloud.demos.producer.config;
-
-import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * 初使化Mybatis审计字段自动赋值的interceptor
- */
-@Configuration
-public class MybatisConfig {
- @Bean
- public ISqlInjector sqlInjector() {
- return new LogicSqlInjector();
- }
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/SwaggerConfig.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/SwaggerConfig.java
deleted file mode 100644
index bdaadd37..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/SwaggerConfig.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.springboot.cloud.demos.producer.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@Configuration
-@EnableSwagger2
-public class SwaggerConfig {
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage("com.springboot.cloud.demos.producer"))
- .paths(PathSelectors.any())
- .build();
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title("Spring Boot中使用Swagger2构建RESTful APIs")
- .description("更多Spring Boot API")
- .termsOfServiceUrl("https://github.com/zhoutaoo/SpringCloud")
- .version("2.0")
- .build();
- }
-
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/WebServerMvcConfigurerAdapter.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/WebServerMvcConfigurerAdapter.java
deleted file mode 100644
index e9a9c79e..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/config/WebServerMvcConfigurerAdapter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.springboot.cloud.demos.producer.config;
-
-import com.springboot.cloud.common.web.interceptor.UserInterceptor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@Configuration
-public class WebServerMvcConfigurerAdapter implements WebMvcConfigurer {
-
- @Bean
- public HandlerInterceptor userInterceptor() {
- return new UserInterceptor();
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(userInterceptor());
- }
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/dao/ProductMapper.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/dao/ProductMapper.java
deleted file mode 100644
index 81878ad2..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/dao/ProductMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.demos.producer.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.springboot.cloud.demos.producer.entity.po.Product;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-@Repository
-@Mapper
-public interface ProductMapper extends BaseMapper {
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/form/ProductForm.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/form/ProductForm.java
deleted file mode 100644
index afabc744..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/form/ProductForm.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.springboot.cloud.demos.producer.entity.form;
-
-import com.springboot.cloud.common.web.entity.form.BaseForm;
-import com.springboot.cloud.demos.producer.entity.po.Product;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-
-@ApiModel
-@Data
-public class ProductForm extends BaseForm {
-
- @NotBlank(message = "产品名称不能为空")
- @ApiModelProperty(value = "产品名称")
- private String name;
-
- @ApiModelProperty(value = "产品描述")
- private String description;
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/form/ProductQueryForm.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/form/ProductQueryForm.java
deleted file mode 100644
index 18fdbeaa..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/form/ProductQueryForm.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.springboot.cloud.demos.producer.entity.form;
-
-import com.springboot.cloud.common.web.entity.form.BaseQueryForm;
-import com.springboot.cloud.demos.producer.entity.param.ProductQueryParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Past;
-import java.util.Date;
-
-@ApiModel
-@Data
-public class ProductQueryForm extends BaseQueryForm {
- @NotBlank(message = "名称不能为空")
- @ApiModelProperty(value = "产品名称", required = true)
- private String name;
-
- @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
- @Past(message = "查询开始时间必须小于当前日期")
- @ApiModelProperty(value = "查询开始时间")
- private Date createdTimeStart;
-
- @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
- @Past(message = "查询结束时间必须小于当前日期")
- @ApiModelProperty(value = "查询结束时间")
- private Date createdTimeEnd;
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/param/ProductQueryParam.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/param/ProductQueryParam.java
deleted file mode 100644
index bbccdd23..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/param/ProductQueryParam.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.demos.producer.entity.param;
-
-import com.springboot.cloud.common.web.entity.param.BaseParam;
-import com.springboot.cloud.demos.producer.entity.po.Product;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@Builder
-public class ProductQueryParam extends BaseParam {
- private String name;
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/po/Product.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/po/Product.java
deleted file mode 100644
index 10939808..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/entity/po/Product.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.springboot.cloud.demos.producer.entity.po;
-
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.springboot.cloud.common.web.entity.po.BasePo;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class Product extends BasePo {
- private String name;
- private String description;
- @TableLogic
- private String deleted = "N";
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/BusReceiver.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/BusReceiver.java
deleted file mode 100644
index 1cfe66f9..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/BusReceiver.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.springboot.cloud.demos.producer.events;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
-import org.springframework.context.annotation.Bean;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class BusReceiver {
-
- public void handleMessage(String message) {
- log.info("Received Message:<{}>", message);
- }
-
- @Bean
- MessageListenerAdapter mqListenerAdapter() {
- log.info("new listener");
- return new MessageListenerAdapter(this);
- }
-
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/BusSender.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/BusSender.java
deleted file mode 100644
index b18d0e19..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/BusSender.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.springboot.cloud.demos.producer.events;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class BusSender {
-
- @Autowired
- private RabbitTemplate rabbitTemplate;
-
- public void send(String routingKey, String message) {
- log.info("routingKey:{}=>message:{}", routingKey, message);
- rabbitTemplate.convertAndSend(routingKey, message);
- }
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RabbitReceiver.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RabbitReceiver.java
deleted file mode 100644
index 964a748e..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RabbitReceiver.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.springboot.cloud.demos.producer.events;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.annotation.RabbitHandler;
-import org.springframework.amqp.rabbit.annotation.RabbitListener;
-import org.springframework.stereotype.Component;
-
-@Component
-@RabbitListener(queues = "mq")
-@Slf4j
-public class RabbitReceiver {
-
- @RabbitHandler
- public void process(String message) {
- log.info("Receiver: {}", message);
- }
-
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RedisReceiver.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RedisReceiver.java
deleted file mode 100644
index 1f2124bd..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RedisReceiver.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.springboot.cloud.demos.producer.events;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.Bean;
-import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
-import org.springframework.stereotype.Component;
-
-@Component
-public class RedisReceiver {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- public void handleMessage(String message) {
- logger.info("Received <{}>", message);
- }
-
- @Bean
- MessageListenerAdapter redisListenerAdapter() {
- logger.info("new listener");
- return new MessageListenerAdapter(this);
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RedisSender.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RedisSender.java
deleted file mode 100644
index 6e6eafa9..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/events/RedisSender.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.springboot.cloud.demos.producer.events;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.data.redis.connection.RedisConnectionFactory;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.data.redis.listener.ChannelTopic;
-import org.springframework.data.redis.listener.RedisMessageListenerContainer;
-import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
-import org.springframework.stereotype.Component;
-
-@Component
-public class RedisSender {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- @Autowired
- private StringRedisTemplate stringRedisTemplate;
-
- @Bean
- RedisMessageListenerContainer redisContainer(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) {
- RedisMessageListenerContainer container = new RedisMessageListenerContainer();
- container.setConnectionFactory(connectionFactory);
- container.addMessageListener(listenerAdapter, new ChannelTopic("chat"));
- logger.info("init container:{}", listenerAdapter);
- return container;
- }
-
- public void send(String channel, String message) {
- logger.info("{}=>{}", channel, message);
- stringRedisTemplate.convertAndSend(channel, message);
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/exception/GlobalExceptionHandlerAdvice.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/exception/GlobalExceptionHandlerAdvice.java
deleted file mode 100644
index a39ad304..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/exception/GlobalExceptionHandlerAdvice.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.springboot.cloud.demos.producer.exception;
-
-import com.springboot.cloud.common.web.exception.DefaultGlobalExceptionHandlerAdvice;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@RestControllerAdvice
-public class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice {
-
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/interceptor/MyMetaObjectHandler.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/interceptor/MyMetaObjectHandler.java
deleted file mode 100644
index 5b2a20e3..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/interceptor/MyMetaObjectHandler.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.springboot.cloud.demos.producer.interceptor;
-
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import com.springboot.cloud.common.web.entity.po.BasePo;
-import com.springboot.cloud.common.core.util.UserContextHolder;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
-import org.apache.ibatis.reflection.MetaObject;
-import org.springframework.stereotype.Component;
-
-import java.time.ZonedDateTime;
-import java.util.Date;
-
-@Slf4j
-@Component
-public class MyMetaObjectHandler implements MetaObjectHandler {
-
- private static final String FIELD_CREATED_TIME = "createdTime";
- private static final String FIELD_CREATED_BY = "createdBy";
- private static final String FIELD_UPDATED_TIME = "updatedTime";
- private static final String FIELD_UPDATED_BY = "updatedBy";
-
- @Override
- public void insertFill(MetaObject metaObject) {
- //避免使用metaObject.setValue()
- String username = getUsername();
- Date now = Date.from(ZonedDateTime.now().toInstant());
- log.debug("start insert fill username:{}", username);
- this.setFieldValByName(FIELD_CREATED_TIME, now, metaObject);
- this.setFieldValByName(FIELD_CREATED_BY, username, metaObject);
- this.setFieldValByName(FIELD_UPDATED_TIME, now, metaObject);
- this.setFieldValByName(FIELD_UPDATED_BY, username, metaObject);
- }
-
- @Override
- public void updateFill(MetaObject metaObject) {
- String username = getUsername();
- log.debug("start update fill username:{}", username);
- this.setFieldValByName(FIELD_UPDATED_TIME, Date.from(ZonedDateTime.now().toInstant()), metaObject);
- this.setFieldValByName(FIELD_UPDATED_BY, username, metaObject);
- }
-
- /**
- * 获取当前操作的用户名
- *
- * @return 当前操作用户名,若为空置为system
- */
- private String getUsername() {
- return StringUtils.defaultIfBlank(UserContextHolder.getInstance().getUsername(), BasePo.DEFAULT_USERNAME);
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/FooController.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/FooController.java
deleted file mode 100644
index 76baadf2..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/FooController.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.springboot.cloud.demos.producer.rest;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import static org.apache.commons.lang.RandomStringUtils.randomNumeric;
-
-@RestController
-public class FooController {
-
- @RequestMapping(method = RequestMethod.GET, value = "/users/{id}")
- public Result findById(@PathVariable long id) {
- return Result.success(randomNumeric(2) + id);
- }
-
- @RequestMapping(method = RequestMethod.DELETE, value = "/users/{id}")
- public String deleteById(@PathVariable long id) {
- return randomNumeric(2) + id;
- }
-
- @RequestMapping(method = RequestMethod.PUT, value = "/users/{id}")
- public String update(@PathVariable long id) {
- return randomNumeric(2) + id;
- }
-
- @RequestMapping(method = RequestMethod.POST, value = "/users/{id}")
- public String add(@PathVariable long id) {
- return randomNumeric(2) + id;
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/HelloController.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/HelloController.java
deleted file mode 100644
index 9d68d551..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/HelloController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.springboot.cloud.demos.producer.rest;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import org.springframework.web.bind.annotation.*;
-
-import static org.apache.commons.lang.RandomStringUtils.randomNumeric;
-
-@RestController
-public class HelloController {
-
- @RequestMapping(method = RequestMethod.GET, value = "/hello/{name}")
- public String hello(@PathVariable String name) {
- return randomNumeric(2) + name;
- }
-
- @RequestMapping(method = RequestMethod.GET, value = "/hello")
- public Result world(@RequestParam String name) {
- return Result.success(name + "success");
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/ProductController.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/ProductController.java
deleted file mode 100644
index 16c80660..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/rest/ProductController.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.springboot.cloud.demos.producer.rest;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.demos.producer.entity.form.ProductForm;
-import com.springboot.cloud.demos.producer.entity.form.ProductQueryForm;
-import com.springboot.cloud.demos.producer.entity.param.ProductQueryParam;
-import com.springboot.cloud.demos.producer.entity.po.Product;
-import com.springboot.cloud.demos.producer.service.IProductService;
-import io.swagger.annotations.*;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-@RestController
-@RequestMapping("/product")
-@Api("product")
-@Slf4j
-public class ProductController {
-
- @Autowired
- private IProductService productService;
-
- @ApiOperation(value = "新增产品", notes = "新增一个产品")
- @ApiImplicitParam(name = "productForm", value = "新增产品form表单", required = true, dataType = "ProductForm")
- @PostMapping
- public Result add(@Valid @RequestBody ProductForm productForm) {
- log.info("name:{}", productForm);
- Product product = productForm.toPo(Product.class);
- return Result.success(productService.add(product));
- }
-
- @ApiOperation(value = "删除产品", notes = "根据url的id来指定删除对象")
- @ApiImplicitParam(paramType = "path", name = "id", value = "产品ID", required = true, dataType = "string")
- @DeleteMapping(value = "/{id}")
- public Result delete(@PathVariable String id) {
- return Result.success(productService.delete(id));
- }
-
- @ApiOperation(value = "修改产品", notes = "修改指定产品信息")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "产品ID", required = true, dataType = "string"),
- @ApiImplicitParam(name = "productForm", value = "产品实体", required = true, dataType = "ProductForm")
- })
- @PutMapping(value = "/{id}")
- public Result update(@PathVariable String id, @Valid @RequestBody ProductForm productForm) {
- Product product = productForm.toPo(Product.class);
- product.setId(id);
- return Result.success(productService.update(product));
- }
-
- @ApiOperation(value = "获取产品", notes = "获取指定产品信息")
- @ApiImplicitParam(paramType = "path", name = "id", value = "产品ID", required = true, dataType = "string")
- @GetMapping(value = "/{id}")
- public Result get(@PathVariable String id) {
- log.info("get with id:{}", id);
- return Result.success(productService.get(id));
- }
-
- @ApiOperation(value = "查询产品", notes = "根据条件查询产品信息,简单查询")
- @ApiImplicitParam(paramType = "query", name = "name", value = "产品名称", required = true, dataType = "string")
- @ApiResponses(
- @ApiResponse(code = 200, message = "处理成功", response = Result.class)
- )
- @GetMapping
- public Result query(@RequestParam String name) {
- log.info("query with name:{}", name);
- ProductQueryParam productQueryParam = new ProductQueryParam(name);
- return Result.success(productService.query(productQueryParam));
- }
-
- @ApiOperation(value = "搜索产品", notes = "根据条件查询产品信息")
- @ApiImplicitParam(name = "productQueryForm", value = "产品查询参数", required = true, dataType = "ProductQueryForm")
- @ApiResponses(
- @ApiResponse(code = 200, message = "处理成功", response = Result.class)
- )
- @PostMapping(value = "/conditions")
- public Result search(@Valid @RequestBody ProductQueryForm productQueryForm) {
- log.info("search with productQueryForm:{}", productQueryForm);
- return Result.success(productService.query(productQueryForm.toParam(ProductQueryParam.class)));
- }
-}
-
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/service/IProductService.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/service/IProductService.java
deleted file mode 100644
index e6a44d8b..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/service/IProductService.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.springboot.cloud.demos.producer.service;
-
-import com.springboot.cloud.demos.producer.entity.param.ProductQueryParam;
-import com.springboot.cloud.demos.producer.entity.po.Product;
-
-import java.util.List;
-
-public interface IProductService {
- /**
- * 获取用户
- *
- * @param id
- * @return
- */
- Product get(String id);
-
- /**
- * 新增用户
- *
- * @param product
- * @return
- */
- boolean add(Product product);
-
- /**
- * 查询用户
- *
- * @return
- */
- List query(ProductQueryParam productQueryParam);
-
- /**
- * 更新用户信息
- *
- * @param product
- */
- boolean update(Product product);
-
- /**
- * 根据id删除用户
- *
- * @param id
- */
- boolean delete(String id);
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/service/ProductService.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/service/ProductService.java
deleted file mode 100644
index e7192b8e..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/service/ProductService.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.springboot.cloud.demos.producer.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.springboot.cloud.demos.producer.dao.ProductMapper;
-import com.springboot.cloud.demos.producer.entity.param.ProductQueryParam;
-import com.springboot.cloud.demos.producer.entity.po.Product;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.cloud.context.config.annotation.RefreshScope;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-@Service
-@Slf4j
-@RefreshScope
-public class ProductService extends ServiceImpl implements IProductService {
-
- @Value("${producer.product:123}")
- private String value;
-
- @Override
- public boolean add(Product product) {
- return this.save(product);
- }
-
- @Override
- @CacheEvict(value = "product", key = "#root.targetClass+'-'+#id")
- public boolean delete(String id) {
- return this.removeById(id);
- }
-
- @Override
- @CacheEvict(value = "product", key = "#root.targetClass+'-'+#product.id")
- public boolean update(Product product) {
- return this.updateById(product);
- }
-
- @Override
- @Cacheable(value = "product", key = "#root.targetClass+'-'+#id")
- public Product get(String id) {
- log.info("value:{}", value);
- return this.getById(id);
- }
-
- @Override
- public List query(ProductQueryParam productQueryParam) {
- QueryWrapper queryWrapper = productQueryParam.build();
- queryWrapper.eq("name", productQueryParam.getName());
- return this.list(queryWrapper);
- }
-}
diff --git a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/task/ScheduledTasks.java b/demos/producer/src/main/java/com/springboot/cloud/demos/producer/task/ScheduledTasks.java
deleted file mode 100644
index 1ee8bcfe..00000000
--- a/demos/producer/src/main/java/com/springboot/cloud/demos/producer/task/ScheduledTasks.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.springboot.cloud.demos.producer.task;
-
-import com.springboot.cloud.demos.producer.events.BusSender;
-import com.springboot.cloud.demos.producer.events.RedisSender;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-@Component
-@EnableScheduling
-public class ScheduledTasks {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- @Autowired
- private RedisSender redisSender;
-
- @Autowired
- private BusSender busSender;
-
- @Scheduled(fixedRate = 20000)
- public void sendMessageToRedis() {
- logger.info("Send Hello To Redis With chat");
- redisSender.send("chat", "Hello from Redis!");
- }
-
- @Scheduled(fixedRate = 30000)
- public void sendMessageToMq() {
- logger.info("Send Hello To RabbitMQ With mq");
- busSender.send("mq", "Hello To RabbitMQ!");
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/main/resources/application.yml b/demos/producer/src/main/resources/application.yml
deleted file mode 100644
index 45d127f3..00000000
--- a/demos/producer/src/main/resources/application.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-spring:
- cloud:
- bus:
- trace:
- enabled: true
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- redis:
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
- lettuce:
- pool:
- max-active: 300
- #password: ${REDIS_PASSWORD:123456}
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:${DATASOURCE_DBTYPE:mysql}://${DATASOURCE_HOST:localhost}:${DATASOURCE_PORT:3306}/sc_product?characterEncoding=UTF-8&useUnicode=true&useSSL=false
- username: ${DATASOURCE_USERNAME:root}
- password: ${DATASOURCE_PASSWORD:root123}
- zipkin:
- enabled: true
- sender:
- type: rabbit
- sleuth:
- sampler:
- probability: 1.0
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
-# resources:
-# add-mappings: false
-
-logging:
- level:
- java:
- sql:
- PreparedStatement: debug
- com:
- springboot: debug
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
-
-mybatis:
- configuration:
- map-underscore-to-camel-case: true
-
-mybatis-plus:
- global-config:
- db-config:
- id-type: 0 # 0为AUTO
- logic-delete-value: "Y" # 逻辑已删除值(默认为 Y)
- logic-not-delete-value: "N" # 逻辑未删除值(默认为 N)
\ No newline at end of file
diff --git a/demos/producer/src/main/resources/bootstrap.yml b/demos/producer/src/main/resources/bootstrap.yml
deleted file mode 100644
index 2a3394b4..00000000
--- a/demos/producer/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-server:
- port: 9001
-spring:
- application:
- name: producer
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
- sentinel:
- transport:
- dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
- bus:
- trace:
- enabled: true
\ No newline at end of file
diff --git a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/MvcMockTest.java b/demos/producer/src/test/java/com/springboot/cloud/demos/producer/MvcMockTest.java
deleted file mode 100644
index 2b89690e..00000000
--- a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/MvcMockTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.springboot.cloud.demos.producer;
-
-import com.springboot.cloud.demos.producer.rest.HelloController;
-import io.restassured.module.mockmvc.RestAssuredMockMvc;
-import org.junit.Before;
-import org.junit.Test;
-
-public class MvcMockTest {
-
- @Before
- public void setup() {
- RestAssuredMockMvc.standaloneSetup(new HelloController());
- }
-
- @Test
- public void testMethod() {
- }
-}
\ No newline at end of file
diff --git a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/rest/HelloControllerTests.java b/demos/producer/src/test/java/com/springboot/cloud/demos/producer/rest/HelloControllerTests.java
deleted file mode 100644
index 6f634e70..00000000
--- a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/rest/HelloControllerTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.springboot.cloud.demos.producer.rest;
-
-import org.hamcrest.core.Is;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@AutoConfigureMockMvc
-public class HelloControllerTests {
-
- @Autowired
- private MockMvc mvc;
-
- @Test
- public void query() throws Exception {
- mvc.perform(MockMvcRequestBuilders.get("/hello").param("name", "好海报"))
- .andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.jsonPath("code", Is.is("000000")));
- }
-
-}
\ No newline at end of file
diff --git a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/rest/ProductControllerTests.java b/demos/producer/src/test/java/com/springboot/cloud/demos/producer/rest/ProductControllerTests.java
deleted file mode 100644
index 3eeb294b..00000000
--- a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/rest/ProductControllerTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.springboot.cloud.demos.producer.rest;
-
-import org.hamcrest.core.Is;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@AutoConfigureMockMvc
-public class ProductControllerTests {
-
- @Autowired
- private MockMvc mvc;
-
- @Test
- public void query() throws Exception {
- mvc.perform(MockMvcRequestBuilders.get("/product").param("name", "好海报"))
- .andExpect(MockMvcResultMatchers.status().isOk())
- .andExpect(MockMvcResultMatchers.jsonPath("code", Is.is("000000")));
- }
-
-}
\ No newline at end of file
diff --git a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/service/ProductServiceTests.java b/demos/producer/src/test/java/com/springboot/cloud/demos/producer/service/ProductServiceTests.java
deleted file mode 100644
index 53b15eb3..00000000
--- a/demos/producer/src/test/java/com/springboot/cloud/demos/producer/service/ProductServiceTests.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.springboot.cloud.demos.producer.service;
-
-import com.springboot.cloud.demos.producer.entity.po.Product;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class ProductServiceTests {
- @Autowired
- private IProductService productService;
-
- @Test
- public void add() {
- Product product = new Product("海报", "我是海报", "N");
- Assert.assertEquals(1, productService.add(product));
- }
-
-}
\ No newline at end of file
diff --git a/demos/producer/src/test/resources/application.yml b/demos/producer/src/test/resources/application.yml
deleted file mode 100644
index 4ab97e4e..00000000
--- a/demos/producer/src/test/resources/application.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-server:
- port: 9001
-
-spring:
- datasource:
- druid:
- web-stat-filter:
- enabled: false
- url: jdbc:h2:mem:sc_product;MODE=mysql;INIT=RUNSCRIPT FROM './src/main/db/db.sql'
- username: sa
- password:
- driver-class-name: org.h2.Driver
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
- flyway:
- locations: classpath:.
- baseline-on-migrate: true
-
-logging:
- level:
- org.springframework.web: info
- org.apache.ibatis: info
- java.sql.PreparedStatement: info
- java.sql.Statement: info
- Java.sql.Connection: info
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
-
-username: test123
diff --git a/demos/producer/src/test/resources/contracts/HelloController.groovy b/demos/producer/src/test/resources/contracts/HelloController.groovy
deleted file mode 100644
index dffdc038..00000000
--- a/demos/producer/src/test/resources/contracts/HelloController.groovy
+++ /dev/null
@@ -1,25 +0,0 @@
-import org.springframework.cloud.contract.spec.Contract
-
-Contract.make {
- request {
- method 'GET'
- url('/hello') {
- queryParameters {
- parameter("name", "zhangsan")
- }
- }
-
- }
- response {
- status 200
- body("""
- {
- "code": "000000",
- "mesg": "处理成功"
- }
- """)
- headers {
- header('Content-Type': 'application/json;charset=UTF-8')
- }
- }
-}
\ No newline at end of file
diff --git a/docker-compose/.env b/docker-compose/.env
deleted file mode 100644
index 573d8a37..00000000
--- a/docker-compose/.env
+++ /dev/null
@@ -1,63 +0,0 @@
-## docker-compose环境变量
-
-### 数据源postgres实例
-#DATASOURCE_DBTYPE=postgresql
-#DATASOURCE_HOST=postgres
-#DATASOURCE_PORT=5432
-#DATASOURCE_USERNAME=postgres
-#DATASOURCE_PASSWORD=postgres
-#DATASOURCE_DRIVER=org.postgresql.Driver
-
-### 数据源mysql实例
-DATASOURCE_DBTYPE=mysql
-DATASOURCE_HOST=mysql
-DATASOURCE_PORT=3306
-DATASOURCE_USERNAME=root
-DATASOURCE_PASSWORD=root123
-DATASOURCE_DRIVER=com.mysql.jdbc.Driver
-
-### 分布式缓存
-REDIS_HOST=redis
-REDIS_PORT=6379
-REDIS_PASSWORD=123456
-
-### 消息中间件
-RABBIT_MQ_HOST=rabbitmq
-RABBIT_MQ_PORT=5672
-RABBIT_MQ_USERNAME=guest
-RABBIT_MQ_PASSWORD=guest
-
-### 注册中心
-REGISTER_HOST=nacos
-REGISTER_PORT=8848
-
-### sentinel dashboard
-SENTINEL_DASHBOARD_HOST=sentinel-dashboard
-SENTINEL_DASHBOARD_PORT=8021
-
-### MOSS
-MOSS_DB_TYPE=mysql
-MOSS_PORT=8086
-MOSS_SKYWALKING_HOST=skywalking-oap
-MOSS_SKYWALKING_PORT=12800
-
-### skywalking-agent 容器内路径
-SW_AGENT_OPTS=-javaagent:/skywalking/agent/skywalking-agent.jar -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.agent.service_name
-
-### kong数据库
-KONG_ADMIN_LISTEN=0.0.0.0:8001
-KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444
-KONG_CASSANDRA_CONTACT_POINTS=mysql
-KONG_DATABASE=sc_gateway_kong
-KONG_PG_HOST=mysql
-
-### konga数据库
-TOKEN_SECRET=123456
-DB_ADAPTER:=mysql
-DB_USER=root
-DB_PASSWORD=root123
-DB_DATABASE=sc_gateway_konga
-DB_PG_SCHEMA=public
-NODE_ENV=production
-DB_HOST=mysql
-DB_PORT=3306
\ No newline at end of file
diff --git a/docker-compose/devops/elasticsearch.yml b/docker-compose/devops/elasticsearch.yml
deleted file mode 100644
index 067ef80b..00000000
--- a/docker-compose/devops/elasticsearch.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-http.host: 0.0.0.0
-http.cors.enabled: true
-http.cors.allow-origin: "*"
-# Uncomment the following lines for a production cluster deployment
-#transport.host: 0.0.0.0
-#discovery.zen.minimum_master_nodes: 1
-transport.host: 0.0.0.0
diff --git a/docker-compose/devops/kibana.yml b/docker-compose/devops/kibana.yml
deleted file mode 100644
index 9d2aaf90..00000000
--- a/docker-compose/devops/kibana.yml
+++ /dev/null
@@ -1,104 +0,0 @@
-# Kibana is served by a back end server. This setting specifies the port to use.
-#server.port: 5601
-
-# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
-# The default is 'localhost', which usually means remote machines will not be able to connect.
-# To allow connections from remote users, set this parameter to a non-loopback address.
-server.host: '0.0.0.0'
-
-# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects
-# the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests
-# to Kibana. This setting cannot end in a slash.
-# server.basePath: ""
-
-# The maximum payload size in bytes for incoming server requests.
-#server.maxPayloadBytes: 1048576
-
-# The Kibana server's name. This is used for display purposes.
-#server.name: "your-hostname"
-
-# The URL of the Elasticsearch instance to use for all your queries.
-elasticsearch.url: 'http://elasticsearch:9200'
-
-# When this setting's value is true Kibana uses the hostname specified in the server.host
-# setting. When the value of this setting is false, Kibana uses the hostname of the host
-# that connects to this Kibana instance.
-#elasticsearch.preserveHost: true
-
-# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
-# dashboards. Kibana creates a new index if the index doesn't already exist.
-#kibana.index: ".kibana"
-
-# The default application to load.
-#kibana.defaultAppId: "discover"
-
-# If your Elasticsearch is protected with basic authentication, these settings provide
-# the username and password that the Kibana server uses to perform maintenance on the Kibana
-# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
-# is proxied through the Kibana server.
-#elasticsearch.username: "user"
-#elasticsearch.password: "pass"
-
-# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
-# These settings enable SSL for outgoing requests from the Kibana server to the browser.
-#server.ssl.enabled: false
-#server.ssl.certificate: /path/to/your/server.crt
-#server.ssl.key: /path/to/your/server.key
-
-# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
-# These files validate that your Elasticsearch backend uses the same key files.
-#elasticsearch.ssl.certificate: /path/to/your/client.crt
-#elasticsearch.ssl.key: /path/to/your/client.key
-
-# Optional setting that enables you to specify a path to the PEM file for the certificate
-# authority for your Elasticsearch instance.
-#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]
-
-# To disregard the validity of SSL certificates, change this setting's value to 'none'.
-#elasticsearch.ssl.verificationMode: full
-
-# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
-# the elasticsearch.requestTimeout setting.
-#elasticsearch.pingTimeout: 1500
-
-# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
-# must be a positive integer.
-#elasticsearch.requestTimeout: 30000
-
-# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
-# headers, set this value to [] (an empty list).
-#elasticsearch.requestHeadersWhitelist: [ authorization ]
-
-# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten
-# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.
-#elasticsearch.customHeaders: {}
-
-# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
-#elasticsearch.shardTimeout: 0
-
-# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
-#elasticsearch.startupTimeout: 5000
-
-# Specifies the path where Kibana creates the process ID file.
-#pid.file: /var/run/kibana.pid
-
-# Enables you specify a file where Kibana stores log output.
-#logging.dest: stdout
-
-# Set the value of this setting to true to suppress all logging output.
-#logging.silent: false
-
-# Set the value of this setting to true to suppress all logging output other than error messages.
-#logging.quiet: false
-
-# Set the value of this setting to true to log all events, including system usage information
-# and all requests.
-#logging.verbose: false
-
-# Set the interval in milliseconds to sample system and process performance
-# metrics. Minimum is 100ms. Defaults to 5000.
-#ops.interval: 5000
-
-# The default locale. This locale can be used in certain circumstances to substitute any missing
-# translations.
-#i18n.defaultLocale: "en"
\ No newline at end of file
diff --git a/docker-compose/devops/skywalking/config/alarm-settings.yml b/docker-compose/devops/skywalking/config/alarm-settings.yml
deleted file mode 100644
index 63bc6b0c..00000000
--- a/docker-compose/devops/skywalking/config/alarm-settings.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Sample alarm rules.
-rules:
- # Rule unique name, must be ended with `_rule`.
- service_resp_time_rule:
- indicator-name: service_resp_time
- op: ">"
- threshold: 1000
- period: 10
- count: 3
- silence-period: 5
- message: Response time of service {name} is more than 1000ms in last 3 minutes.
- service_sla_rule:
- # Indicator value need to be long, double or int
- indicator-name: service_sla
- op: "<" - threshold: 8000 - # The length of time to evaluate the metric - period: 10 - # How many times after the metric match the condition, will trigger alarm - count: 2 - # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period. - silence-period: 3 - message: Successful rate of service {name} is lower than 80% in last 2 minutes. - service_p90_sla_rule: - # Indicator value need to be long, double or int - indicator-name: service_p90 - op: ">"
- threshold: 1000
- period: 10
- count: 3
- silence-period: 5
- message: 90% response time of service {name} is lower than 1000ms in last 3 minutes
- service_instance_resp_time_rule:
- indicator-name: service_instance_resp_time
- op: ">"
- threshold: 1000
- period: 10
- count: 2
- silence-period: 5
- message: Response time of service instance {name} is more than 1000ms in last 2 minutes.
-# Active endpoint related metric alarm will cost more memory than service and service instance metric alarm.
-# Because the number of endpoint is much more than service and instance.
-#
-# endpoint_avg_rule:
-# indicator-name: endpoint_avg
-# op: ">"
-# threshold: 1000
-# period: 10
-# count: 2
-# silence-period: 5
-# message: Response time of endpoint {name} is more than 1000ms in last 2 minutes.
-
-webhooks:
-# - http://127.0.0.1/notify/
-# - http://127.0.0.1/go-wechat/
\ No newline at end of file
diff --git a/docker-compose/devops/skywalking/config/application.yml b/docker-compose/devops/skywalking/config/application.yml
deleted file mode 100644
index df30c9ed..00000000
--- a/docker-compose/devops/skywalking/config/application.yml
+++ /dev/null
@@ -1,111 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-cluster:
- standalone:
- # Please check your ZooKeeper is 3.5+, However, it is also compatible with ZooKeeper 3.4.x. Replace the ZooKeeper 3.5+
- # library the oap-libs folder with your ZooKeeper 3.4.x library.
-# zookeeper:
-# nameSpace: ${SW_NAMESPACE:""}
-# hostPort: ${SW_CLUSTER_ZK_HOST_PORT:localhost:2181}
-# #Retry Policy
-# baseSleepTimeMs: ${SW_CLUSTER_ZK_SLEEP_TIME:1000} # initial amount of time to wait between retries
-# maxRetries: ${SW_CLUSTER_ZK_MAX_RETRIES:3} # max number of times to retry
-# kubernetes:
-# watchTimeoutSeconds: ${SW_CLUSTER_K8S_WATCH_TIMEOUT:60}
-# namespace: ${SW_CLUSTER_K8S_NAMESPACE:default}
-# labelSelector: ${SW_CLUSTER_K8S_LABEL:app=collector,release=skywalking}
-# uidEnvName: ${SW_CLUSTER_K8S_UID:SKYWALKING_COLLECTOR_UID}
-# consul:
-# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
-# Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500
-# hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500}
-core:
- default:
- # Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate
- # Aggregator: Level 2 aggregate
- role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
- restHost: ${SW_CORE_REST_HOST:0.0.0.0}
- restPort: ${SW_CORE_REST_PORT:12800}
- restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
- gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
- gRPCPort: ${SW_CORE_GRPC_PORT:11800}
- downsampling:
- - Hour
- - Day
- - Month
- # Set a timeout on metric data. After the timeout has expired, the metric data will automatically be deleted.
- recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90} # Unit is minute
- minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute
- hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour
- dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day
- monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month
-storage:
- elasticsearch:
- # set the namespace in elasticsearch
- clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:elasticsearch:9200}
- indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
- indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
- # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
- bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000} # Execute the bulk every 2000 requests
- bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mb
- flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
- concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
- metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
- segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
-# h2:
-# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
-# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
-# user: ${SW_STORAGE_H2_USER:sa}
-# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
-# mysql:
-# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
-receiver-sharing-server:
- default:
-receiver-register:
- default:
-receiver-trace:
- default:
- bufferPath: ${SW_RECEIVER_BUFFER_PATH:../trace-buffer/} # Path to trace buffer files, suggest to use absolute path
- bufferOffsetMaxFileSize: ${SW_RECEIVER_BUFFER_OFFSET_MAX_FILE_SIZE:100} # Unit is MB
- bufferDataMaxFileSize: ${SW_RECEIVER_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB
- bufferFileCleanWhenRestart: ${SW_RECEIVER_BUFFER_FILE_CLEAN_WHEN_RESTART:false}
- sampleRate: ${SW_TRACE_SAMPLE_RATE:10000} # The sample rate precision is 1/10000. 10000 means 100% sample in default.
- slowDBAccessThreshold: ${SW_SLOW_DB_THRESHOLD:default:200,mongodb:100} # The slow database access thresholds. Unit ms.
-receiver-jvm:
- default:
-service-mesh:
- default:
- bufferPath: ${SW_SERVICE_MESH_BUFFER_PATH:../mesh-buffer/} # Path to trace buffer files, suggest to use absolute path
- bufferOffsetMaxFileSize: ${SW_SERVICE_MESH_OFFSET_MAX_FILE_SIZE:100} # Unit is MB
- bufferDataMaxFileSize: ${SW_SERVICE_MESH_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB
- bufferFileCleanWhenRestart: ${SW_SERVICE_MESH_BUFFER_FILE_CLEAN_WHEN_RESTART:false}
-istio-telemetry:
- default:
-envoy-metric:
- default:
-# receiver_zipkin:
-# default:
-# host: ${SW_RECEIVER_ZIPKIN_HOST:0.0.0.0}
-# port: ${SW_RECEIVER_ZIPKIN_PORT:9411}
-# contextPath: ${SW_RECEIVER_ZIPKIN_CONTEXT_PATH:/}
-query:
- graphql:
- path: ${SW_QUERY_GRAPHQL_PATH:/graphql}
-alarm:
- default:
-telemetry:
- none:
diff --git a/docker-compose/devops/skywalking/config/component-libraries.yml b/docker-compose/devops/skywalking/config/component-libraries.yml
deleted file mode 100644
index f9ab4bad..00000000
--- a/docker-compose/devops/skywalking/config/component-libraries.yml
+++ /dev/null
@@ -1,281 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Define all component libraries' names and IDs, used in monitored application.
-# This is a bothway mapping, agent or SDK could use the value(ID) to represent the component name in uplink data.
-#
-# ######
-# id
-# ######
-# We highly recommend DO NOT change the IDs in these file, just append new one, and make sure the ID unique.
-# Any replacement will cause visualization and aggregation error.
-#
-# All IDs in this files are reserved, even some IDs removed by some reasons, those IDs will be abandoned.
-#
-# ######
-# languages
-# ######
-# Languages declare which languages are using this component. Multi languages should be separated by `,`
-
-Tomcat:
- id: 1
- languages: Java
-HttpClient:
- id: 2
- languages: Java,C#,Node.js
-Dubbo:
- id: 3
- languages: Java
-H2:
- id: 4
- languages: Java
-Mysql:
- id: 5
- languages: Java,C#,Node.js
-ORACLE:
- id: 6
- languages: Java
-Redis:
- id: 7
- languages: Java,C#,Node.js
-Motan:
- id: 8
- languages: Java
-MongoDB:
- id: 9
- languages: Java,C#,Node.js
-Resin:
- id: 10
- languages: Java
-Feign:
- id: 11
- languages: Java
-OKHttp:
- id: 12
- languages: Java
-SpringRestTemplate:
- id: 13
- languages: Java
-SpringMVC:
- id: 14
- languages: Java
-Struts2:
- id: 15
- languages: Java
-NutzMVC:
- id: 16
- languages: Java
-NutzHttp:
- id: 17
- languages: Java
-JettyClient:
- id: 18
- languages: Java
-JettyServer:
- id: 19
- languages: Java
-Memcached:
- id: 20
- languages: Java
-ShardingJDBC:
- id: 21
- languages: Java
-PostgreSQL:
- id: 22
- languages: Java,C#,Node.js
-GRPC:
- id: 23
- languages: Java
-ElasticJob:
- id: 24
- languages: Java
-RocketMQ:
- id: 25
- languages: Java
-httpasyncclient:
- id: 26
- languages: Java
-Kafka:
- id: 27
- languages: Java
-ServiceComb:
- id: 28
- languages: Java
-Hystrix:
- id: 29
- languages: Java
-Jedis:
- id: 30
- languages: Java
-SQLite:
- id: 31
- languages: Java,C#
-h2-jdbc-driver:
- id: 32
- languages: Java
-mysql-connector-java:
- id: 33
- languages: Java
-Spymemcached:
- id: 35
- languages: Java
-Xmemcached:
- id: 36
- languages: Java
-postgresql-jdbc-driver:
- id: 37
- languages: Java
-rocketMQ-producer:
- id: 38
- languages: Java
-rocketMQ-consumer:
- id: 39
- languages: Java
-kafka-producer:
- id: 40
- languages: Java
-kafka-consumer:
- id: 41
- languages: Java
-mongodb-driver:
- id: 42
- languages: Java
-SOFARPC:
- id: 43
- languages: Java
-ActiveMQ:
- id: 44
- languages: Java
-activemq-producer:
- id: 45
- languages: Java
-activemq-consumer:
- id: 46
- languages: Java
-Elasticsearch:
- id: 47
- languages: Java
-transport-client:
- id: 48
- languages: Java
-http:
- id: 49
- languages: Java,C#,Node.js
-rpc:
- id: 50
- languages: Java,C#,Node.js
-RabbitMQ:
- id: 51
- languages: Java
-rabbitmq-producer:
- id: 52
- languages: Java
-rabbitmq-consumer:
- id: 53
- languages: Java
-
-# .NET/.NET Core components
-# [3000, 4000) for C#/.NET only
-AspNetCore:
- id: 3001
- languages: C#
-EntityFrameworkCore:
- id: 3002
- languages: C#
-SqlClient:
- id: 3003
- languages: C#
-CAP:
- id: 3004
- languages: C#
-StackExchange.Redis:
- id: 3005
- languages: C#
-SqlServer:
- id: 3006
- languages: C#
-Npgsql:
- id: 3007
- languages: C#
-MySqlConnector:
- id: 3008
- languages: C#
-EntityFrameworkCore.InMemory:
- id: 3009
- languages: C#
-EntityFrameworkCore.SqlServer:
- id: 3010
- languages: C#
-EntityFrameworkCore.Sqlite:
- id: 3011
- languages: C#
-Pomelo.EntityFrameworkCore.MySql:
- id: 3012
- languages: C#
-Npgsql.EntityFrameworkCore.PostgreSQL:
- id: 3013
- languages: C#
-InMemoryDatabase:
- id: 3014
- languages: C#
-AspNet:
- id: 3015
- languages: C#
-
-# NoeJS components
-# [4000, 5000) for Node.js agent
-HttpServer:
- id: 4001
- languages: Node.js
-express:
- id: 4002
- languages: Node.js
-Egg:
- id: 4003
- languages: Node.js
-Koa:
- id: 4004
- languages: Node.js
-
-# Component Server mapping defines the server display names of some components
-# e.g.
-# Jedis is a client library in Java for Redis server
-Component-Server-Mappings:
- mongodb-driver: MongoDB
- rocketMQ-producer: RocketMQ
- rocketMQ-consumer: RocketMQ
- kafka-producer: Kafka
- kafka-consumer: Kafka
- activemq-producer: ActiveMQ
- activemq-consumer: ActiveMQ
- rabbitmq-producer: RabbitMQ
- rabbitmq-consumer: RabbitMQ
- postgresql-jdbc-driver: PostgreSQL
- Xmemcached: Memcached
- Spymemcached: Memcached
- h2-jdbc-driver: H2
- mysql-connector-java: Mysql
- Jedis: Redis
- StackExchange.Redis: Redis
- SqlClient: SqlServer
- Npgsql: PostgreSQL
- MySqlConnector: Mysql
- EntityFrameworkCore.InMemory: InMemoryDatabase
- EntityFrameworkCore.SqlServer: SqlServer
- EntityFrameworkCore.Sqlite: SQLite
- Pomelo.EntityFrameworkCore.MySql: Mysql
- Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
- transport-client: Elasticsearch
\ No newline at end of file
diff --git a/docker-compose/devops/skywalking/config/log4j2.xml b/docker-compose/devops/skywalking/config/log4j2.xml
deleted file mode 100644
index dbde5de6..00000000
--- a/docker-compose/devops/skywalking/config/log4j2.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docker-compose/docker-compose.auth.yml b/docker-compose/docker-compose.auth.yml
deleted file mode 100644
index 4cb030d0..00000000
--- a/docker-compose/docker-compose.auth.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-version: '3'
-services:
- #授权服务
- authorization-server:
- image: cike/authorization-server:latest
- container_name: sc-authorization-server
- restart: always
- networks:
- - sc-net
- ports:
- - 8000:8000
- env_file: .env
- environment:
- TZ: Asia/Shanghai
- depends_on:
- - authentication-server
-
- #认证服务
- authentication-server:
- image: cike/authentication-server:latest
- container_name: sc-authentication-server
- restart: always
- networks:
- - sc-net
- ports:
- - 8001:8001
- env_file: .env
- environment:
- TZ: Asia/Shanghai
- depends_on:
- - organization
-
- #组织服务
- organization:
- image: cike/organization:latest
- container_name: sc-organization
- restart: always
- networks:
- - sc-net
- ports:
- - 8010:8010
- env_file: .env
- environment:
- TZ: Asia/Shanghai
\ No newline at end of file
diff --git a/docker-compose/docker-compose.center.yml b/docker-compose/docker-compose.center.yml
deleted file mode 100644
index cd21bb13..00000000
--- a/docker-compose/docker-compose.center.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '3'
-services:
- #消息中心
- bus-server:
- image: cike/bus-server:latest
- container_name: sc-bus
- restart: always
- networks:
- - sc-net
- ports:
- - 8071:8071
- env_file: .env
- environment:
- TZ: Asia/Shanghai
\ No newline at end of file
diff --git a/docker-compose/docker-compose.devops.yml b/docker-compose/docker-compose.devops.yml
deleted file mode 100644
index 7959b7dc..00000000
--- a/docker-compose/docker-compose.devops.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-version: '3'
-services:
- zipkin-server:
- image: openzipkin/zipkin
- container_name: sc-zipkin-server
- restart: always
- volumes:
- - ../data/zipkin-server/logs:/var/logs
- networks:
- - sc-net
- ports:
- - 9411:9411
- environment:
- - RABBIT_ADDRESSES=rabbitmq:5672
- - RABBIT_MQ_PORT=5672
- - RABBIT_PASSWORD=guest
- - RABBIT_USER=guest
- - STORAGE_TYPE=elasticsearch
- - ES_HOSTS=http://elasticsearch:9200
- depends_on:
- - rabbitmq
-
- elasticsearch:
- image: elasticsearch:5.6-alpine
- container_name: sc-elasticsearch
- restart: always
- environment:
- - cluster.name=elasticsearch
- - bootstrap.memory_lock=true
- - xpack.security.enabled=false
- - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- - node.name=elasticsearch_node_1
- ulimits:
- memlock:
- soft: -1
- hard: -1
- volumes:
- - ../data/elasticsearch/data:/usr/share/elasticsearch/data
- - ../data/elasticsearch/logs:/usr/share/elasticsearch/logs
- - ./devops/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- networks:
- - sc-net
- ports:
- - 9200:9200
- - 9300:9300
-
- skywalking-oap:
- image: wutang/skywalking-oap:6.1.0
- container_name: skywalking-oap
- networks:
- - sc-net
- depends_on:
- - elasticsearch
- links:
- - elasticsearch
- restart: always
- ports:
- - 11800:11800
- - 12800:12800
- volumes:
- - ./devops/skywalking/config:/apache-skywalking-apm-bin/config:ro
-
- skywalking-ui:
- image: wutang/skywalking-ui:6.1.0
- container_name: skywalking-ui
- networks:
- - sc-net
- depends_on:
- - skywalking-oap
- links:
- - skywalking-oap
- restart: always
- ports:
- - 8080:8080
- environment:
- collector.ribbon.listOfServers: skywalking-oap:12800
-
- kibana:
- image: kibana:5.6.14
- container_name: sc-kibana
- restart: always
- volumes:
- - ../data/kibana/logs:/var/logs/kibana
- - ./devops/kibana.yml:/etc/kibana/kibana.yml
- networks:
- - sc-net
- ports:
- - 5601:5601
- depends_on:
- - elasticsearch
-
- grafana:
- image: grafana/grafana
- container_name: sc-grafana
- restart: always
- volumes:
- - ../data/grafana/logs:/var/logs/grafana
- networks:
- - sc-net
- ports:
- - 3000:3000
\ No newline at end of file
diff --git a/docker-compose/docker-compose.gateway.yml b/docker-compose/docker-compose.gateway.yml
deleted file mode 100644
index 5397a00f..00000000
--- a/docker-compose/docker-compose.gateway.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-version: '3'
-services:
-
- konga:
- image: pantsel/konga
- container_name: sc-konga
- depends_on:
- - kong
- networks:
- - sc-net
- env_file: .env
- ports:
- - 1337:1337/tcp
-
- kong:
- image: kong:latest
- container_name: sc-kong
- env_file: .env
- volumes:
- - ../data/kong:/usr/local/kong
- networks:
- - sc-net
- ports:
- - 18000:8000/tcp
- - 18443:8443/tcp
- - 18001:8001/tcp
- - 8444:8444/tcp
- depends_on:
- - postgres
diff --git a/docker-compose/docker-compose.monitor.yml b/docker-compose/docker-compose.monitor.yml
deleted file mode 100644
index f43e2404..00000000
--- a/docker-compose/docker-compose.monitor.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-version: '3'
-services:
- #监控管理台服务
- monitor-admin:
- image: cike/admin:latest
- container_name: sc-monitor-admin
- restart: always
- networks:
- - sc-net
- ports:
- - 8022:8022
- env_file: .env
- environment:
- TZ: Asia/Shanghai
-
- sentinel-dashboard:
- image: cike/sentinel-dashboard-docker:latest
- container_name: sc-sentinel-dashboard
- restart: always
- networks:
- - sc-net
- ports:
- - 8021:8021
- env_file: .env
diff --git a/docker-compose/docker-compose.moss.yml b/docker-compose/docker-compose.moss.yml
deleted file mode 100644
index f422903b..00000000
--- a/docker-compose/docker-compose.moss.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-version: '3'
-services:
- #MOSS Mysql数据库初使化
- moss-db-init:
- image: mysql:5.7
- command: /init-db.sh
- networks:
- - sc-net
- volumes:
- - ./moss/mysql:/sql
- - ./init-db.sh:/init-db.sh
- environment:
- MYSQL_ROOT_PASSWORD: root123
-
- #Moss管理中心
- moss:
- image: w304807481/moss-web:latest
- container_name: moss
- restart: always
- networks:
- - sc-net
- ports:
- - 8086:8086
- env_file: .env
- environment:
- TZ: Asia/Shanghai
- depends_on:
- - moss-db-init
\ No newline at end of file
diff --git a/docker-compose/docker-compose.nacos.yml b/docker-compose/docker-compose.nacos.yml
deleted file mode 100644
index 1caa1719..00000000
--- a/docker-compose/docker-compose.nacos.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: '3'
-services:
- nacos:
- image: nacos/nacos-server:1.1.3
- container_name: sc-nacos-standalone
- networks:
- - sc-net
- environment:
- - PREFER_HOST_MODE=hostname
- - MODE=standalone
- volumes:
- - ../data/nacos-server/logs/:/home/nacos/logs
- ports:
- - "8848:8848"
-
- prometheus:
- container_name: sc-prometheus
- image: prom/prometheus:latest
- networks:
- - sc-net
- volumes:
- - ./nacos/prometheus.yaml:/etc/prometheus/prometheus.yml
- ports:
- - "9090:9090"
- depends_on:
- - nacos
- restart: on-failure
\ No newline at end of file
diff --git a/docker-compose/docker-compose.spring-gateway.yml b/docker-compose/docker-compose.spring-gateway.yml
deleted file mode 100644
index 6ef24d42..00000000
--- a/docker-compose/docker-compose.spring-gateway.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: '3'
-services:
- #网关服务
- gateway-web:
- image: cike/gateway-web:latest
- container_name: sc-gateway-web
- restart: always
- networks:
- - sc-net
- ports:
- - 8443:8443
- env_file: .env
- environment:
- TZ: Asia/Shanghai
-
- #网关管理服务
- gateway-admin:
- image: cike/gateway-admin:latest
- container_name: sc-gateway-admin
- restart: always
- networks:
- - sc-net
- ports:
- - 8445:8445
- env_file: .env
- environment:
- TZ: Asia/Shanghai
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
deleted file mode 100644
index f3b3228b..00000000
--- a/docker-compose/docker-compose.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-version: '3'
-services:
- redis:
- image: redis:alpine
- container_name: sc-redis
- restart: always
- volumes:
- - ../data/redis:/data
- environment:
- - REDIS_PASSWORD=123456
- networks:
- - sc-net
- ports:
- - 6379:6379
- env_file: .env
-
- rabbitmq:
- image: rabbitmq:management-alpine
- container_name: sc-rabbitmq
- restart: always
- volumes:
- - ../data/rabbitmq:/var/lib/rabbitmq/mnesia
- networks:
- - sc-net
- ports:
- - 5672:5672
- - 15672:15672
- env_file: .env
-
- mysql:
- image: mysql:5.7
- container_name: sc-mysql
- restart: always
- networks:
- - sc-net
- ports:
- - 3306:3306
- volumes:
- - ../data/mysql:/var/lib/mysql
- environment:
- TZ: Asia/Shanghai
- MYSQL_ROOT_PASSWORD: root123
-
- mysql-init:
- image: mysql:5.7
- command: /init-db.sh
- networks:
- - sc-net
- volumes:
- - ../auth/db:/sql/auth
- - ../gateway/gateway-admin/src/main/db:/sql/gateway
- - ../sysadmin/db:/sql/sysadmin
- - ./init-db.sh:/init-db.sh
- environment:
- MYSQL_ROOT_PASSWORD: root123
-
-networks:
- sc-net:
- external: false
\ No newline at end of file
diff --git a/docker-compose/init-db.sh b/docker-compose/init-db.sh
deleted file mode 100755
index b052e8d8..00000000
--- a/docker-compose/init-db.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-
-for file in $(find /sql -name "*.sql" -exec ls {} \;| grep -v postgres | sort | tr ' ' '|' | tr '\n' ' ')
-do
- file=$(echo ${file} | tr '|' ' ')
- printf "Applying update ${file}\n"
- mysql -uroot -p$MYSQL_ROOT_PASSWORD -h mysql < ${file} -done diff --git a/docker-compose/moss/mysql/moss-init.sql b/docker-compose/moss/mysql/moss-init.sql deleted file mode 100644 index 8d456f70..00000000 --- a/docker-compose/moss/mysql/moss-init.sql +++ /dev/null @@ -1,368 +0,0 @@ --- Create Database --- ---------------------------------------------------------- -CREATE DATABASE IF NOT EXISTS moss DEFAULT CHARACTER SET = utf8mb4; - -Use moss; - -SET NAMES utf8; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for `t_app` --- ---------------------------- -DROP TABLE IF EXISTS `t_app`; -CREATE TABLE `t_app` -( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '应用Id', - `app_id` varchar(200) NOT NULL, - `name` varchar(200) NOT NULL DEFAULT '' COMMENT '应用名称', - `owner_name` varchar(200) NOT NULL DEFAULT '' COMMENT '负责人姓名', - `owner_id` varchar(200) DEFAULT '0' COMMENT '负责人Id', - `project_name` varchar(200) NOT NULL DEFAULT '' COMMENT '所属项目名称', - `project_key` varchar(200) NOT NULL DEFAULT '0' COMMENT '所属项目Id', - `description` varchar(1000) DEFAULT '' COMMENT '应用描述', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - `status` tinyint(4) DEFAULT '0' COMMENT '应用的状态 0-创建 1-开发中 2-运行中 3-已下线', - `take_over` tinyint(4) DEFAULT '0', - `ops_owner_name` varchar(200) DEFAULT NULL, - `ops_owner_id` varchar(200) DEFAULT NULL, - `repo_url` varchar(1000) DEFAULT NULL, - `bu_name` varchar(255) DEFAULT NULL, - `spring_application_name` varchar(255) DEFAULT NULL, - `spring_boot_version` int(2) DEFAULT '0', - `spring_cloud_version` int(2) DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 287 - DEFAULT CHARSET = utf8 COMMENT ='应用表'; - --- ---------------------------- --- Records of `t_app` --- ---------------------------- -BEGIN; -INSERT INTO `t_app` -VALUES ('1', 'halo-moss', 'halo-moss', '许进', 'xujin', 'halo', 'Halo', '', '2019-02-27 02:23:42', '2019-04-21 10:15:04', - '0', '2', '1', '韩令三', 'lingshan.han', 'https://github.com/SoftwareKing/Moss.git', 'XX', 'halo-moss', '2', '2'), - ('2', 'moss-sample-1.5.x', 'moss-sample-1.5.x', '杜为极', 'weiji.du', 'BKCASHIER', 'MOSS', '', - '2019-02-27 02:23:42', '2019-04-21 10:15:27', '0', '2', '1', '叶张', 'dingf.ye001', - 'https://github.com/SoftwareKing/Moss.git', '金融XX', 'moss-sample-1.5.x', '1', '1'), - ('3', 'moss-sample-2.1.x', 'moss-sample-2.1.x', '许进', 'guojian.li', 'MOSS', 'MOSS', '', '2019-02-27 02:23:42', - '2019-04-21 10:15:22', '0', '2', '1', '齐思宇', 'daiying.qi', 'https://github.com/SoftwareKing/Moss.git', '房XX', - 'moss-sample-2.1.x', '2', '2'); -COMMIT; - --- ---------------------------- --- Table structure for `t_app_name` --- ---------------------------- -DROP TABLE IF EXISTS `t_app_name`; -CREATE TABLE `t_app_name` -( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `name` varchar(200) NOT NULL DEFAULT '' COMMENT '应用名称', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 4 - DEFAULT CHARSET = utf8 COMMENT ='应用name表'; - --- ---------------------------- --- Table structure for `t_dict_data` --- ---------------------------- -DROP TABLE IF EXISTS `t_dict_data`; -CREATE TABLE `t_dict_data` -( - `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据字典详细主键', - `dict_code` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '数据字典分类标识', - `item_name` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '数据字典详细名称', - `item_value` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '数据字典详细值', - `item_desc` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '数据字典详细描述', - `item_sort` int(16) DEFAULT NULL COMMENT '排序', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - `status` tinyint(4) DEFAULT '0' COMMENT 'COMMENT ''数据字典项启用状态,1:启用,0:未启用'',', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 22 - DEFAULT CHARSET = utf8 - COLLATE = utf8_bin COMMENT ='数据字典详细表'; - --- ---------------------------- --- Records of `t_dict_data` --- ---------------------------- -BEGIN; -INSERT INTO `t_dict_data` -VALUES ('1', 'springBootVersion', '1.5.13.RELEASE', '1', '1.5.13.RELEASE', '0', '1970-01-02 00:00:00', - '2019-03-15 17:44:15', '0', '1'), - ('2', 'springBootVersion', '2.0.7.RELEASE', '2', '2.0.7.RELEASE', '0', '1970-01-02 00:00:00', - '2019-03-15 17:44:19', '0', '1'), - ('3', 'springCloudVersion', 'Edgware.SR3', '1', 'Spring Cloud Edgware.SR3', '0', '1970-01-02 00:00:00', - '2019-03-15 17:44:27', '0', '1'), - ('4', 'springCloudVersion', 'Finchley.SR2', '2', 'Spring Cloud Finchley.SR2', '0', '1970-01-02 00:00:00', - '2019-03-15 17:44:31', '0', '1'), - ('5', 'frameworkVerison', '1.1.8.RELEASE', '1', '1.1.8.RELEASE', '0', '1970-01-02 00:00:00', - '2019-04-10 19:58:48', '1', '1'), - ('6', 'frameworkVerison', '2.0.0.RELEASE', '2', '2.0.0.RELEASE', '0', '1970-01-02 00:00:00', - '2019-04-10 19:58:48', '1', '1'), - ('11', 'appFlickerRule', '当实例数小于2', '1', '当实例数小于2时闪烁', '0', '1970-01-02 00:00:00', '2019-03-19 13:44:36', '0', - '1'), - ('12', 'scoringRules', '当实例数大于1', '1', '当实例数大于1给1颗星', '0', '1970-01-02 00:00:00', '2019-03-19 13:42:48', '0', - '1'); -COMMIT; - --- ---------------------------- --- Table structure for `t_dict_type` --- ---------------------------- -DROP TABLE IF EXISTS `t_dict_type`; -CREATE TABLE `t_dict_type` -( - `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据字典分类主键', - `dict_name` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '数据字典分类名称', - `dict_code` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '数据字典分类唯一标识', - `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '数据字典分类启用状态,0:启用,1:未启用', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 11 - DEFAULT CHARSET = utf8 - COLLATE = utf8_bin COMMENT ='数据字典分类表'; - --- ---------------------------- --- Records of `t_dict_type` --- ---------------------------- -BEGIN; -INSERT INTO `t_dict_type` -VALUES ('1', 'Spring Boot的版本', 'springBootVersion', '0', '2019-03-12 02:36:02', '2019-03-14 14:17:10', '0'), - ('2', 'Spring Cloud的版本', 'springCloudVersion', '0', '2019-03-12 02:36:42', '2019-03-14 14:17:27', '0'), - ('3', 'Summer Framework的版本', 'frameworkVerison', '0', '2019-03-12 02:37:21', '2019-03-14 14:17:41', '1'), - ('6', 'App根据实例数闪烁规则', 'appFlickerRule', '0', '2019-03-15 01:55:56', '2019-03-15 01:55:56', '0'), - ('7', '评分规则', 'scoringRules', '0', '2019-03-15 01:56:22', '2019-03-15 01:56:22', '0'); -COMMIT; - --- ---------------------------- --- Table structure for `t_menu` --- ---------------------------- -DROP TABLE IF EXISTS `t_menu`; -CREATE TABLE `t_menu` -( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `parent_id` bigint(20) DEFAULT NULL, - `name` varchar(255) DEFAULT NULL, - `parent_ids` varchar(255) DEFAULT NULL, - `url` varchar(255) DEFAULT NULL, - `roles` varchar(255) DEFAULT NULL, - `sort` int(11) NOT NULL DEFAULT '1', - `icon` varchar(255) DEFAULT NULL, - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - `key` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 32 - DEFAULT CHARSET = utf8; - --- ---------------------------- --- Records of `t_menu` --- ---------------------------- -BEGIN; -INSERT INTO `t_menu` -VALUES ('1', '0', '总览', '0', '/dashboard', 'USER,ADMIN', '6', 'dashboard', '1970-01-02 00:00:00', '2019-03-01 18:36:14', - '0', 'dashboard'), - ('2', '0', '服务治理', '0', '/#/application', 'USER,ADMIN', '5', 'appstore', '1970-01-02 00:00:00', - '2019-03-01 17:34:03', '0', 'serviceMgmt'), - ('5', '0', '平台管理', '0', '/#', 'USER,ADMIN', '1', 'hdd', '1970-01-02 00:00:00', '2019-04-04 04:12:52', '0', - 'projectMgmt'), - ('6', '4', '推送记录', '0', '/switchCenter', 'USER,ADMIN', '1', 'code', '1970-01-02 00:00:00', '2019-01-03 16:21:07', - '0', 'switchPushLog'), - ('10', '4', '开关管理', '0', '/switchCenter', 'USER,ADMIN', '1', 'key', '1970-01-02 00:00:00', '2019-01-03 11:01:32', - '0', 'switchManage'), - ('11', '4', '机器管理', '0', null, 'USER,ADMIN', '1', 'database', '1970-01-02 00:00:00', '2018-12-10 14:04:18', '0', - 'machine'), - ('12', '0', '系统管理', '0', '', 'ADMIN', '1', 'setting', '1970-01-02 00:00:00', '2018-12-10 14:15:55', '0', 'sys'), - ('13', '12', '菜单管理', '0', '/OSManage', 'USER,ADMIN', '1', 'profile', '1970-01-02 00:00:00', - '2018-12-10 14:04:24', '0', 'menuManage'), - ('16', '5', '应用管理', '0', '/application', 'ADMIN', '1', 'euro', '1970-01-02 00:00:00', '2019-04-19 21:47:35', '0', - 'appAccept'), - ('24', '2', '服务管理', '0', '/application', 'USER,ADMIN', '5', 'deployment-unit', '2019-02-22 03:21:10', - '2019-04-19 21:49:06', '0', 'serviceManage'), - ('25', '2', '事件中心', '0', '/application', 'USER,ADMIN', '0', 'setting', '2019-02-25 03:22:10', - '2019-02-25 03:22:24', '0', 'eventLog'), - ('26', '2', '实例管理', '0', '/application', 'USER,ADMIN', '3', 'ant-design', '1970-01-02 00:00:00', - '2019-04-19 21:50:22', '0', 'list'), - ('27', '5', '项目列表', '0', '/application', 'ADMIN', '2', 'project', '2019-03-07 02:33:31', '2019-04-19 21:48:32', - '0', 'Project'), - ('28', '12', '用户列表', '0', '/userMgmt', 'USER,ADMIN', '0', 'user', '2019-03-07 02:35:53', '2019-04-04 06:53:52', - '0', 'userMgmt'), - ('30', '12', '数据字典', '0', '/remoteConfig', 'ADMIN', '0', 'appstore', '2019-03-13 03:10:28', - '2019-03-13 03:10:28', '0', 'remoteConfig'), - ('31', '5', '注册中心', '0', '/registerCenterMgmt', 'ADMIN', '0', 'gateway', '2019-04-04 04:13:20', - '2019-04-19 21:48:02', '0', 'registerCenterMgmt'); -COMMIT; - --- ---------------------------- --- Table structure for `t_project` --- ---------------------------- -DROP TABLE IF EXISTS `t_project`; -CREATE TABLE `t_project` -( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '项目Id', - `name` varchar(200) NOT NULL DEFAULT '' COMMENT '项目名称', - `cname` varchar(200) NOT NULL DEFAULT '' COMMENT '项目中文名称', - `key` varchar(200) NOT NULL DEFAULT '0' COMMENT '项目key', - `owner_name` varchar(200) NOT NULL DEFAULT '' COMMENT '负责人姓名', - `owner_id` varchar(200) DEFAULT '0' COMMENT '负责人Id', - `description` varchar(1000) DEFAULT '' COMMENT '项目描述', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 216 - DEFAULT CHARSET = utf8 COMMENT ='项目表'; - --- ---------------------------- --- Records of `t_project` --- ---------------------------- -BEGIN; -INSERT INTO `t_project` -VALUES ('1', '服务治理', '服务治理', 'MOSS', '许进', 'xujin', '服务治理', '2019-02-28 21:01:18', '2019-04-05 14:42:36', '0'), - ('2', '中台项目', '中台项目', 'HALO', '许进', 'xujin', '', '2019-02-28 21:02:25', '2019-04-05 14:43:09', '0'), - ('3', 'PMO', 'PMO', 'PMO', '黎茂', 'mao.li001', '', '2019-02-28 21:02:25', '2019-03-07 16:45:13', '1'), - ('4', 'XXXUED', 'XXXUED', 'UED', '王佳琳', 'jialin.wang', '', '2019-02-28 21:02:26', '2019-03-07 16:45:17', '1'); -COMMIT; - --- ---------------------------- --- Table structure for `t_register_center` --- ---------------------------- -DROP TABLE IF EXISTS `t_register_center`; -CREATE TABLE `t_register_center` -( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '注册中心标识', - `url` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '注册中心url', - `desc` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '描述', - `status` tinyint(1) NOT NULL COMMENT '1 运行,0 停用', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - `name` varchar(50) COLLATE utf8_bin DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 5 - DEFAULT CHARSET = utf8 - COLLATE = utf8_bin COMMENT ='注册中心表'; - --- ---------------------------- --- Records of `t_register_center` --- ---------------------------- -BEGIN; -INSERT INTO `t_register_center` -VALUES ('1', 'sq', 'http://eureka.springcloud.cn/eureka/', '社区注册', '1', '2019-04-04 04:28:11', '2019-04-05 18:54:45', - '0', '社区注册'), - ('4', 'zj', 'http://localhost:8071/eureka', '自己本地', '0', '2019-04-20 22:37:04', '2019-04-21 11:37:25', '0', - '自己本地'); -COMMIT; - --- ---------------------------- --- Table structure for `t_user` --- ---------------------------- -DROP TABLE IF EXISTS `t_user`; -CREATE TABLE `t_user` -( - `id` int(11) NOT NULL AUTO_INCREMENT, - `username` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '英文名唯一', - `name` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '中文名', - `password` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '密码', - `status` tinyint(1) NOT NULL COMMENT '是否启用', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - `email` varchar(255) COLLATE utf8_bin DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 7 - DEFAULT CHARSET = utf8 - COLLATE = utf8_bin COMMENT ='用户表'; - --- ---------------------------- --- Records of `t_user` --- ---------------------------- -BEGIN; -INSERT INTO `t_user` -VALUES ('1', 'xujin', 'xujin', 'UUKHSDDI5KPA43A8VL06V0TU2', '0', '2019-03-06 20:23:50', '2019-03-08 19:15:35', '0', - 'Software_King@qq.com'), - ('6', 'admin', 'admin', 'UUKHSDDI5KPA43A8VL06V0TU2', '0', '2019-04-12 04:37:00', '2019-04-21 11:38:48', '0', - 'admin@qq.com'); -COMMIT; - --- ---------------------------- --- Table structure for `t_user_app` --- ---------------------------- -DROP TABLE IF EXISTS `t_user_app`; -CREATE TABLE `t_user_app` -( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', - `mail_nick_name` varchar(200) NOT NULL DEFAULT '' COMMENT '邮箱前缀名称', - `app_id` varchar(200) NOT NULL DEFAULT '' COMMENT '应用名称', - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - PRIMARY KEY (`id`) -) ENGINE = InnoDB - AUTO_INCREMENT = 48 - DEFAULT CHARSET = utf8 COMMENT ='应用name表'; - --- ---------------------------- --- Records of `t_user_app` --- ---------------------------- -BEGIN; -INSERT INTO `t_user_app` -VALUES ('38', 'xujin', 'halo-moss', '2019-03-10 05:46:39', '2019-04-05 01:31:23', '1'), - ('39', 'xujin', 'loop_test', '2019-03-10 07:44:23', '2019-03-10 07:44:27', '1'), - ('40', 'admin', 'halo-moss', '2019-03-11 22:45:05', '2019-03-11 22:45:07', '1'), - ('41', 'test', 'halo-moss', '2019-03-12 00:03:39', '2019-03-12 00:03:51', '1'), - ('42', 'test', 'loop_test', '2019-03-12 00:52:27', '2019-03-12 01:04:15', '1'), - ('43', 'admin', 'loop_test', '2019-03-12 04:37:18', '2019-03-12 04:37:21', '1'), - ('44', 'admin', 'loop_test', '2019-03-12 04:37:23', '2019-03-12 04:37:24', '1'), - ('45', 'admin', 'loop_test', '2019-03-14 09:13:35', '2019-03-14 09:13:41', '1'), - ('46', 'test', 'halo-moss', '2019-03-18 04:17:17', '2019-03-18 04:17:19', '1'), - ('47', 'xujin', 'halo-moss', '2019-04-10 06:47:12', '2019-04-10 06:47:12', '0'); -COMMIT; - --- ---------------------------- --- Table structure for `t_user_roles` --- ---------------------------- -DROP TABLE IF EXISTS `t_user_roles`; -CREATE TABLE `t_user_roles` -( - `id` int(11) NOT NULL AUTO_INCREMENT, - `username` varchar(50) COLLATE utf8_bin NOT NULL, - `role` varchar(50) COLLATE utf8_bin NOT NULL, - `gmt_create` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' COMMENT '创建时间', - `gmt_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除 0 否 1 已经删除', - PRIMARY KEY (`id`), - UNIQUE KEY `ix_auth_username` (`username`, `role`) USING BTREE -) ENGINE = InnoDB - AUTO_INCREMENT = 16 - DEFAULT CHARSET = utf8 - COLLATE = utf8_bin; - --- ---------------------------- --- Records of `t_user_roles` --- ---------------------------- -BEGIN; -INSERT INTO `t_user_roles` -VALUES ('11', 'admin', 'ADMIN', '2019-03-06 20:24:51', '2019-03-07 16:27:54', '0'), - ('12', 'xujin', 'ADMIN', '2019-03-08 05:15:41', '2019-03-08 19:16:52', '0'), - ('13', 'test', 'USER', '1970-01-02 00:00:00', '2019-03-12 12:52:40', '0'); -COMMIT; - -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/docker-compose/nacos/prometheus.yaml b/docker-compose/nacos/prometheus.yaml deleted file mode 100644 index 521e2617..00000000 --- a/docker-compose/nacos/prometheus.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# my global config -global: - scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. - evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. - # scrape_timeout is set to the global default (10s). - -# Alertmanager configuration -alerting: - alertmanagers: - - static_configs: - - targets: - # - alertmanager:9093 - -# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. -rule_files: -# - "first_rules.yml" -# - "second_rules.yml" - -# A scrape configuration containing exactly one endpoint to scrape: -# Here it's Prometheus itself. -scrape_configs: - # The job name is added as a label `job=` to any timeseries scraped from this config.
- - job_name: 'prometheus'
-
- # metrics_path defaults to '/metrics'
- # scheme defaults to 'http'.
-
- static_configs:
- - targets: ['localhost:9090']
-
- - job_name: 'nacos'
- metrics_path: '/nacos/actuator/prometheus'
- static_configs:
- - targets: ['nacos:8848']
\ No newline at end of file
diff --git a/docker-compose/readme.md b/docker-compose/readme.md
deleted file mode 100644
index da0caabd..00000000
--- a/docker-compose/readme.md
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-## 启动基础服务
-
-mysql、redis、rabbitmq
-
-`docker-compose up -d`
-
-rabbitmq默认账号密码:guest/guest
-mysql默认账号密码:root/root123
-
-## 启动devops组件,如elasticsearch、zipkin、skywalking、kibana、grafana
-
-`docker-compose -f docker-compose.yml -f docker-compose.devops.yml up`
-
-## 启动阿里注册中心和配置中心nacos
-
-`docker-compose -f docker-compose.yml -f docker-compose.nacos.yml up`
-
-默认账号密码:nacos/nacos
-
-## 启动监控类服务,如springboot-admin、sentinel-dashboard
-
-`docker-compose -f docker-compose.yml -f docker-compose.monitor.yml up`
-
-默认账号密码:sentinel/sentinel
-
-## 启动MOSS
-
-`docker-compose -f docker-compose.yml -f docker-compose.moss.yml up moss`
diff --git a/docs b/docs
new file mode 160000
index 00000000..057bb94f
--- /dev/null
+++ b/docs
@@ -0,0 +1 @@
+Subproject commit 057bb94f83c48319a9f850f4561032f45ccdce8b
diff --git a/docs/auth.png b/docs/auth.png
deleted file mode 100644
index 2f8b468c..00000000
Binary files a/docs/auth.png and /dev/null differ
diff --git a/docs/auth/oauth2_authorization_code.png b/docs/auth/oauth2_authorization_code.png
deleted file mode 100644
index 84bc485b..00000000
Binary files a/docs/auth/oauth2_authorization_code.png and /dev/null differ
diff --git a/docs/auth/oauth2_authorization_code_authorization.png b/docs/auth/oauth2_authorization_code_authorization.png
deleted file mode 100644
index b0ad5f1e..00000000
Binary files a/docs/auth/oauth2_authorization_code_authorization.png and /dev/null differ
diff --git a/docs/auth/oauth2_authorization_code_login.png b/docs/auth/oauth2_authorization_code_login.png
deleted file mode 100644
index b8691415..00000000
Binary files a/docs/auth/oauth2_authorization_code_login.png and /dev/null differ
diff --git a/docs/auth/oauth2_authorization_code_url.png b/docs/auth/oauth2_authorization_code_url.png
deleted file mode 100644
index 63072b08..00000000
Binary files a/docs/auth/oauth2_authorization_code_url.png and /dev/null differ
diff --git a/docs/auth/oauth2_client_token.png b/docs/auth/oauth2_client_token.png
deleted file mode 100644
index cfffd8dd..00000000
Binary files a/docs/auth/oauth2_client_token.png and /dev/null differ
diff --git a/docs/auth/oauth2_mobile_token.png b/docs/auth/oauth2_mobile_token.png
deleted file mode 100644
index 34b15fba..00000000
Binary files a/docs/auth/oauth2_mobile_token.png and /dev/null differ
diff --git a/docs/auth/oauth2_password_token.png b/docs/auth/oauth2_password_token.png
deleted file mode 100644
index 80ea4043..00000000
Binary files a/docs/auth/oauth2_password_token.png and /dev/null differ
diff --git a/docs/auth/oauth2_password_token_auth.png b/docs/auth/oauth2_password_token_auth.png
deleted file mode 100644
index 1d39f6b1..00000000
Binary files a/docs/auth/oauth2_password_token_auth.png and /dev/null differ
diff --git a/docs/auth/oauth2_refresh_token.png b/docs/auth/oauth2_refresh_token.png
deleted file mode 100644
index e90feabc..00000000
Binary files a/docs/auth/oauth2_refresh_token.png and /dev/null differ
diff --git a/docs/development.md b/docs/development.md
deleted file mode 100644
index 95b849e6..00000000
--- a/docs/development.md
+++ /dev/null
@@ -1,101 +0,0 @@
-
-### 项目目录结构
-
-```
-├── auth --授权认证子项目
-│ ├── authentication-server --认证组件服务端
-│ ├── authentication-client --认证组件客户端
-│ ├── authorization-server --授权组件服务端
-│ ├── db --子项目公共数据库脚本
-│ └── pom.xml --子项目maven配置文件
-├── center --中心子项目
-│ ├── bus --消息中心
-│ └── pom.xml
-├── common --通用子项目
-│ ├── core --核心类库
-│ ├── test --测试工具类库
-│ ├── web --WEB核心类库
-│ └── pom.xml
-├── gateway --网关子项目
-│ ├── gateway-web --基于springcloud gateway的网关
-│ ├── gateway-admin --springcloud gateway的网关管理模块
-│ └── pom.xml
-├── sysadmin --系统管理子项目
-│ ├── db --系统管理子项目数据库脚本
-│ ├── organization --组织管理应用,包括用户、角色、资源、菜单、组织架构的管理
-│ └── pom.xml
-├── monitor --监控、日志及服务管理子项目
-│ ├── admin --springboot admin管理
-│ ├── hystrix-dashboard --hystrix监控
-│ ├── turbine --turbine监控聚集
-│ └── pom.xml
-├── webapps --web项目的基础父工程,定义常用依赖等
-│ ├── webapp-parent --web项目的父工程,新建业务应用父工程
-│ └── pom.xml
-├── docs --文档及资源文件
-├── data --server及服务数据存储目录
-│ ├── elasticsearch --elasticsearch配置数据存储位置
-│ ├── mysql --mysql数据库文件存储目录
-│ ├── rabbitmq --rabbitmq数据文件存储目录
-│ └── redis --redis数据文件存储目录
-├── demos --demos子项目,常用的解决方案案例
-│ ├── consumer-feign --消费者服务 feign demo
-│ ├── consumer-ribbon --消费者服务 ribbon demo
-│ ├── producer --服务提供者,产品服务
-│ ├── producer-jpa --服务提供者,产品服务,jpa和hateoas
-│ └── pom.xml
-├── docker-compose --基础服务docker快速启动方案
-│ ├── .env --docker-compose环境变量配置文件
-│ ├── apollo --apollo配置中心配置文件等
-│ ├── devops --devops组件的相关配置文件目录
-│ ├── nacos --macos组件配置文件目录
-│ ├── docker-compose.yml --docker compose配置文件,基础组件如数据库、redis、mq等组件
-│ ├── docker-compose.devops.yml --docker compose配置文件,es、apm等devops组件
-│ ├── docker-compose.gateway.yml --docker compose配置文件,网关相关组件
-│ ├── docker-compose.nacos.yml --docker compose配置文件,springcloud alibaba相关组件
-│ └── docker-compose.config.yml --docker compose配置文件,apollo配置中心
-├── readme.md --readme文档入口
-└── pom.xml --业务服务子项目
-```
-
-### module目录结构
-
-```
-├── logs --日志目录
-│ ├── spring.log
-│ └── spring.log.2018年04月15日.0.gz
-├── pom.xml --module maven配置文件
-├── src --源码目录
-│ ├── main --源文件
-│ │ ├── db --服务db脚本目录
-│ │ │ └── db.sql --ddl & dml
-│ │ ├── docker --docker相关配置文件
-│ │ │ └── Dockerfile --dockerfile
-│ │ ├── docs --接口文档目录,一般由swagger生成
-│ │ ├── java --java源码目录
-│ │ │ ├── dao --数据操作层
-│ │ │ ├── service --业务逻辑层
-│ │ │ ├── provider --调用第三方服务的提供类
-│ │ │ ├── rest --接口controller
-│ │ │ ├── entity --实体类
-│ │ │ │ ├── form --rest表单校验
-│ │ │ │ ├── param --dao参数,可以由form转化来
-│ │ │ │ ├── po --实体类
-│ │ │ │ └── vo --视图对象
-│ │ │ ├── events --事件或消息处理类
-│ │ │ ├── config --配置类
-│ │ │ ├── exception --异常处理相关类
-│ │ │ ├── interceptor --拦截器相关类
-│ │ │ └── task --定时任务
-│ │ └── resources --配置文件目录
-│ │ ├── application.yml --springboot的应用配置文件
-│ │ └── bootstrap.yml --springboot的配置文件
-│ └── test --测试目录
-│ ├── java --java测试案例目录
-│ └── resources --配置文件目录
-│ └── application.yml --springboot test的配置文件
-└── target --编译目标目录
-```
-### 开发规范
-
-[规范文档](pattern.md)
\ No newline at end of file
diff --git a/docs/form-parm-po-vo.png b/docs/form-parm-po-vo.png
deleted file mode 100644
index fcdca83a..00000000
Binary files a/docs/form-parm-po-vo.png and /dev/null differ
diff --git a/docs/gateway-web.png b/docs/gateway-web.png
deleted file mode 100644
index e93e96aa..00000000
Binary files a/docs/gateway-web.png and /dev/null differ
diff --git a/docs/grafana.png b/docs/grafana.png
deleted file mode 100644
index 46f4b927..00000000
Binary files a/docs/grafana.png and /dev/null differ
diff --git a/docs/kibana.png b/docs/kibana.png
deleted file mode 100644
index bc44a43f..00000000
Binary files a/docs/kibana.png and /dev/null differ
diff --git a/docs/pattern.md b/docs/pattern.md
deleted file mode 100644
index 30c52c74..00000000
--- a/docs/pattern.md
+++ /dev/null
@@ -1,108 +0,0 @@
-
-## 数据库设计规范
-
-### 表设计规范
-
-1、表名全部小写,单词间通过'_'间隔
-
-2、主键命名为'id',varchar(20),不使用数据库的序列,应用生成全局序列。
-
-3、必须包含4个审计字段且不能为空。created_time、updated_time、created_by、updated_by。
-
-4、关键词要求大写,使用IDE如idea进行格式化
-
-5、常量枚举全部用大写
-
-### 外键及索引命名规范
-
-1、唯一索引:ux_表名_索引字段。如:ux_resource_code
-
-2、普通索引:ix_表名_索引字段。如:ix_role_name
-
-3、外键命名:fk_表名_字段名。如:fk_orders_product_id
-
-### 字段长度规则
-
-| 名称类 | 类型 | 长度 | 备注 |
-|--------|---------|------|--------|
-| 编码类 | varchar | 100 | |
-| 账号类 | varchar | 100 | 如email,username |
-| 状态类 | varchar | 5 | 如订单状态等 |
-| 名称类 | varchar | 200 | 中文名称,如产品名 |
-| 手机电话| varchar | 20 | |
-| 描述简介| varchar | 500 | |
-| 网址类 | varchar | 500 | 如url |
-| 时间类 | datetime | | |
-
-
-## URL和方法命名规范
-
-### RESTFUL URL命名规范
-
-API URI design
-API URI 设计最重要的一个原则: nouns (not verbs!) ,名词(而不是动词)。
-
-CRUD 简单 URI:
-
-| 方法 | URL | 功能 |
-|--------|-----------|------------------|
-| GET | /user | 获取用户列表 |
-| GET | /user/1 | 获取 id 为 1 的用户|
-| POST | /user | 创建一个用户 |
-| PUT | /user/1 | 替换 id 为 1 的用户|
-| PATCH | /user/1 | 修改 id 为 1 的用户|
-| DELETE | /user/1 | 删除 id 为 1 的用户|
-
-上面是对某一种资源进行操作的 URI,那如果是有关联的资源,或者称为级联的资源,该如何设计 URI 呢?比如某一用户下的产品:
-
-| 方法 | URL | 功能 |
-|--------|---------------------|------------------------------------|
-| GET | /user/1/product | 获取 Id 为 1 用户下的产品列表 |
-| GET | /user/1/product/2 | 获取 Id 为 1 用户下 Id 为 2 的产品 |
-| POST | /user/1/product | 在 Id 为 1 用户下,创建一个产品 |
-| PUT | /user/1/product/2 | 在 Id 为 1 用户下,替换 Id 为 2 的产品|
-| PATCH | /user/1/product/2 | 修改 Id 为 1 的用户下 Id 为 2 的产品 |
-| DELETE | /user/1/product/2 | 删除 Id 为 1 的用户下 Id 为 2 的产品 |
-
-### 方法命名规范
-
-### Mapper
-
-简单的CRUD请按如下规则命名
-
-| 操作 | 例子 | 备注 |
-|--------|---------------------|----------------------------------|
-| 增加 | insert/add | |
-| 删除 | delete | |
-| 修改 | update | |
-| 查询 | query | |
-| 搜索 | search | |
-
-### Service
-
-简单的CRUD请按如下规则命名,其它操作请按业务动作命名,使用动词
-
-| 操作 | 例子 | 备注 |
-|--------|---------------------|----------------------------------|
-| 增加 | add | |
-| 获取 | get | 获取到单条记录 |
-| 删除 | remove/delete | |
-| 更新 | update | 更新存在的记录 |
-| 保存 | save | 更新,不存在则新增 |
-| 查询 | query | 根据id等简单条件查询 |
-| 搜索 | search | 根据时间范围或模糊搜索 |
-
-### Rest
-
-简单的CRUD请按如下规则命名,其它操作请按业务动作命名,使用动词
-
-| 操作 | 例子 | 备注 |
-|--------|---------------------|----------------------------------|
-| 增加 | add | |
-| 保存 | save | 更新,不存在则新增 |
-| 删除 | remove/delete | |
-| 获取 | get | 获取到单条记录 |
-| 更新 | update | 更新存在的记录 |
-| 查询 | query | 根据id等简单条件查询 |
-| 搜索 | search | 根据时间范围或模糊搜索 |
-
diff --git a/docs/register-nacos.png b/docs/register-nacos.png
deleted file mode 100644
index b99f026f..00000000
Binary files a/docs/register-nacos.png and /dev/null differ
diff --git a/docs/register.md b/docs/register.md
deleted file mode 100644
index 1f0ff5d4..00000000
--- a/docs/register.md
+++ /dev/null
@@ -1,104 +0,0 @@
-注册中心
-----------
-
-## 关键词
-
-`注册中心、服务发现、服务注册`
-
-## 简介
-
-本项目造型采用Nacos为注册中心,Nacos是阿里巴巴开源的注册中心、配置中心。致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理等。
-
-[Nacos官网地址](https://nacos.io/zh-cn/index.html)
-
-
-
-
-上图简要描述了Eureka的基本架构,由3个角色组成:
-
-1、Register Server
-
-提供服务注册和发现的Server
-
-2、Service Provider :服务提供方
-
-将自身服务注册到注册中心,从而使服务消费方能够找到
-
-3、Service Consumer:服务消费方
-
-从注册中心中获取注册服务列表,从而能够消费服务
-
-## 启动
-
-### 先决条件
-
-本项目采用docker快速搭建一个可用的开发环境
-
-- [docker](https://www.docker.com)
-
-### 启动命令
-
-进入docker-compose目录
-
-执行命令:`docker-compose -f docker-compose.yml -f docker-compose.nacos.yml up nacos`
-
-## 使用指南
-
-### 控制台查看
-
-浏览器中打开`http://localhost:8848`,可以看到注册中心的一些信息,如目前注册的应用,应用上下线的情况。
-
-
-
-
-### 客户端注册
-
-Provider和Consumer注册到注册中心需要添加的nacos client包,并添加注册中心的配置, 如下
-
-pom.xml
-
-```
-
-
-
-
- org.springframework.boot
- spring-boot-dependencies
- 2.1.4.RELEASE
- pom
- import
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- Greenwich.RELEASE
- pom
- import
-
-
- com.alibaba.cloud
- spring-cloud-alibaba-dependencies
- 2.1.0.RELEASE
- pom
- import
-
-
-
-
-
-
- com.alibaba.cloud
- spring-cloud-alibaba-nacos-discovery
-
-
-```
-
-application.yml
-
-```
-spring:
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
-```
diff --git a/docs/register.png b/docs/register.png
deleted file mode 100644
index 2d2417da..00000000
Binary files a/docs/register.png and /dev/null differ
diff --git a/docs/sc-bus.png b/docs/sc-bus.png
deleted file mode 100644
index bbd6565a..00000000
Binary files a/docs/sc-bus.png and /dev/null differ
diff --git a/docs/sleuth.png b/docs/sleuth.png
deleted file mode 100644
index 8d72b2cd..00000000
Binary files a/docs/sleuth.png and /dev/null differ
diff --git a/docs/zipkin-dependencies.png b/docs/zipkin-dependencies.png
deleted file mode 100644
index 324a1006..00000000
Binary files a/docs/zipkin-dependencies.png and /dev/null differ
diff --git a/docs/zipkin-detail.png b/docs/zipkin-detail.png
deleted file mode 100644
index a225713e..00000000
Binary files a/docs/zipkin-detail.png and /dev/null differ
diff --git a/docs/zipkin-server.png b/docs/zipkin-server.png
deleted file mode 100644
index ee4183f6..00000000
Binary files a/docs/zipkin-server.png and /dev/null differ
diff --git a/examples b/examples
new file mode 160000
index 00000000..e5b9e6f6
--- /dev/null
+++ b/examples
@@ -0,0 +1 @@
+Subproject commit e5b9e6f6ace51de688a8611570deec28357b0be8
diff --git a/gateway/gateway-admin/.gitignore b/gateway/gateway-admin/.gitignore
deleted file mode 100644
index 3a051984..00000000
--- a/gateway/gateway-admin/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-target/
-logs/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
diff --git a/gateway/gateway-admin/pom.xml b/gateway/gateway-admin/pom.xml
deleted file mode 100644
index fe159a9d..00000000
--- a/gateway/gateway-admin/pom.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
- 4.0.0
-
- gateway-admin
- 0.0.1-SNAPSHOT
- jar
-
- gateway-admin
- Demo Gateway Admin project for Spring Cloud
-
-
- webapp-parent
- com.springboot.cloud
- 0.0.1-SNAPSHOT
- ../../webapps/webapp-parent/pom.xml
-
-
-
-
- com.alicp.jetcache
- jetcache-starter-redis
- 2.5.14
-
-
- org.springframework.cloud
- spring-cloud-gateway-core
- 2.1.0.RELEASE
- compile
-
-
-
-
-
-
-
- com.spotify
- docker-maven-plugin
- 1.2.0
-
-
- cike/${project.artifactId}
- ${project.basedir}/src/main/docker
- true
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
-
-
diff --git a/gateway/gateway-admin/readme.md b/gateway/gateway-admin/readme.md
deleted file mode 100644
index 6f54b32f..00000000
--- a/gateway/gateway-admin/readme.md
+++ /dev/null
@@ -1,144 +0,0 @@
-网关管理应用
-----------
-
-## 关键词
-
-`动态路由、动态网关`
-
-## 简介
-
-网关的管理服务,提供网关路由配置的增加、修改、删除等管理功能。
-
-## 启动
-
-### 先决条件
-
-- [redis](http://redis.io/download)
-- [postgresql](http://www.postgresql.org/)
-- [rabbitmq](http://rabbitmq.io/download)
-- [nacos](../../docs/register.md)
-
-### 启动命令
-
-进入应用目录
-
-启动命令:`mvn spring-boot:run`
-
-docker镜像打包:`mvn docker:build`
-
-## 使用指南
-
-### 新增路由
-
-接口用途: 通过网关后台动态新增路由或配置路由策略,如限流、转发、处理等网关动作
-
-接口路径:`POST /gateway/routes`
-
-报文类型:`application/json`
-
-请求参数:
-
-| 服务名 | 简介 | 默认地址 |
-|--------------------|---------------------|--------------------------|
-| uri | 必填 | 代理路径,如http://baidu.com或lb://serviceId |
-| routeId | 必填 | 路由名称,不可重复 |
-| predicates | 必填 | 断言,有多种断言维度,springcloud gateway默认有多种实现,见文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.0.2.RELEASE/single/spring-cloud-gateway.html#gateway-request-predicates-factories,见例子 |
-| filters | 非必填 | 过滤器配置,springcloud gateway默认有多种实现,见文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.0.2.RELEASE/single/spring-cloud-gateway.html#_gatewayfilter_factories,见例子 |
-| description | 非必填 | 路由描述 |
-
-例子:
-
-#### predicates:
-
-```
- [{
- name:"Path",
- args:{
- "pattern":"配置路径"
- }
- }]
- ```
-
-#### filters:
-
- ```
- [{
- name:"AddRequestHeader",
- args:{
- "pattern":"X-Request-Foo, Bar"
- }
- }]
-```
-
-
-### 转发路由例子
-
-请求报文
-
-```
-{
- "uri": "http://www.baidu.com",
- "routeId": "test_route_id",
- "predicates": [{
- "name": "Path",
- "args": {
- "pattern": "/bd"
- }
- }],
- "filters":[{
- "name": "StripPrefix",
- "args": {
- "parts": "2"
- }
- }],
- "description": "这是一个转发XX服务的路由"
-}
-```
-响应报文
-
-```
-{
- "code": "000000",
- "mesg": "处理成功",
- "timestamp": "2019-01-31T07:19:53.230Z",
- "data": 1
-}
-```
-
-### 限流路由例子
-
-请求报文
-
-```
-{
- "uri": "lb://serviceid",
- "routeId": "xx_routeid",
- "predicates": [{
- "name": "Path",
- "args": {
- "pattern": "/xx"
- }
- }],
- "filters":[{
- "name": "RequestRateLimiter",
- "args": {
- "redis-rate-limiter.replenishRate": "10",
- "redis-rate-limiter.burstCapacity": "20"
- }
- }],
- "description": "这是一个带限流的路由"
-}
-```
-
-响应报文
-
-```
-{
- "code": "000000",
- "mesg": "处理成功",
- "timestamp": "2019-01-31T07:19:53.230Z",
- "data": 1
-}
-```
-
-
diff --git a/gateway/gateway-admin/src/main/db/db.sql b/gateway/gateway-admin/src/main/db/db.sql
deleted file mode 100644
index 63810aec..00000000
--- a/gateway/gateway-admin/src/main/db/db.sql
+++ /dev/null
@@ -1,66 +0,0 @@
-SET NAMES utf8;
-
-DROP DATABASE IF EXISTS sc_gateway;
-CREATE DATABASE sc_gateway DEFAULT CHARSET utf8mb4;
-
-USE sc_gateway;
-
--- 网关路由表
-DROP TABLE IF EXISTS gateway_route;
-CREATE TABLE gateway_route
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- route_id VARCHAR(100) NOT NULL COMMENT '路由id',
- uri VARCHAR(100) NOT NULL COMMENT 'uri路径',
- predicates TEXT NOT NULL COMMENT '判定器',
- filters TEXT COMMENT '过滤器',
- orders INT COMMENT '排序',
- description VARCHAR(500) COMMENT '描述',
- status VARCHAR(1) DEFAULT 'Y' COMMENT '状态:Y-有效,N-无效',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '网关路由表';
-
-CREATE UNIQUE INDEX ux_gateway_routes_uri ON gateway_route (uri);
-
-
--- DML初始数据
--- 路由数据
-INSERT INTO gateway_route (id, route_id, uri, predicates, filters, orders, description, status, created_time, updated_time, created_by, updated_by)
-VALUES
-(101,
- 'authorization-server',
- 'lb://authorization-server:8000',
- '[{"name":"Path","args":{"pattern":"/authorization-server/**"}}]',
- '[{"name":"StripPrefix","args":{"parts":"1"}}]',
- 100,
- '授权认证服务网关注册',
- 'Y', now(), now(), 'system', 'system'),
-(102,
- 'authentication-server',
- 'lb://authentication-server:8001',
- '[{"name":"Path","args":{"pattern":"/authentication-server/**"}}]',
- '[{"name":"StripPrefix","args":{"parts":"1"}}]',
- 100,
- '签权服务网关注册',
- 'Y', now(), now(), 'system', 'system'),
-(103,
- 'organization',
- 'lb://organization:8010',
- '[{"name":"Path","args":{"pattern":"/organization/**"}}]',
- '[{"name":"StripPrefix","args":{"parts":"1"}}]',
- 100,
- '系统管理相关接口',
- 'Y', now(), now(), 'system', 'system'),
-(104,
- 'gateway-admin',
- 'lb://gateway-admin:8445',
- '[{"name":"Path","args":{"pattern":"/gateway-admin/**"}}]',
- '[{"name":"StripPrefix","args":{"parts":"1"}}]',
- 100,
- '网关管理相关接口',
- 'Y', now(), now(), 'system', 'system')
-
-
diff --git a/gateway/gateway-admin/src/main/docker/Dockerfile b/gateway/gateway-admin/src/main/docker/Dockerfile
deleted file mode 100644
index de4f7f41..00000000
--- a/gateway/gateway-admin/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:alpine
-VOLUME /tmp
-ADD gateway-admin-0.0.1-SNAPSHOT.jar app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java
deleted file mode 100644
index ab3378de..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/GatewayAdminApplication.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.springboot.cloud.gateway.admin;
-
-import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
-import com.alicp.jetcache.anno.config.EnableMethodCache;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration;
-
-@SpringBootApplication(exclude = GatewayClassPathWarningAutoConfiguration.class)
-@EnableDiscoveryClient
-@EnableCircuitBreaker
-@EnableMethodCache(basePackages = "com.springboot.cloud")
-@EnableCreateCacheAnnotation
-public class GatewayAdminApplication {
- public static void main(String[] args) {
- SpringApplication.run(GatewayAdminApplication.class, args);
- }
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java
deleted file mode 100644
index eec5208f..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/BusConfig.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.springboot.cloud.gateway.admin.config;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.core.Binding;
-import org.springframework.amqp.core.BindingBuilder;
-import org.springframework.amqp.core.Queue;
-import org.springframework.amqp.core.TopicExchange;
-import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter;
-import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
-import org.springframework.amqp.support.converter.MessageConverter;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@Slf4j
-public class BusConfig {
-
- public static final String QUEUE_NAME = "event-gateway";
- public static final String EXCHANGE_NAME = "spring-boot-exchange";
- public static final String ROUTING_KEY = "gateway-route";
-
- @Bean
- Queue queue() {
- log.info("queue name:{}", QUEUE_NAME);
- return new Queue(QUEUE_NAME, false);
- }
-
- @Bean
- TopicExchange exchange() {
- log.info("exchange:{}", EXCHANGE_NAME);
- return new TopicExchange(EXCHANGE_NAME);
- }
-
- @Bean
- Binding binding(Queue queue, TopicExchange exchange) {
- log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY);
- return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);
- }
-
- @Bean
- public MessageConverter messageConverter() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper));
- }
-
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java
deleted file mode 100644
index 79c3e2db..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyMetaObjectHandler.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.springboot.cloud.gateway.admin.config;
-
-import com.springboot.cloud.common.web.handler.PoMetaObjectHandler;
-import org.springframework.stereotype.Component;
-
-@Component
-public class MyMetaObjectHandler extends PoMetaObjectHandler {
-
-}
\ No newline at end of file
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java
deleted file mode 100644
index b36f9aab..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MyRedisConfig.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.springboot.cloud.gateway.admin.config;
-
-import com.springboot.cloud.common.web.redis.RedisConfig;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@EnableCaching
-public class MyRedisConfig extends RedisConfig {
-}
\ No newline at end of file
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java
deleted file mode 100644
index 74b3366f..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/MybatisConfig.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.springboot.cloud.gateway.admin.config;
-
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-/**
- * 初使化Mybatis审计字段自动赋值的interceptor
- */
-@EnableTransactionManagement
-@Configuration
-public class MybatisConfig {
- /**
- * 分页插件
- */
- @Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
- }
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java
deleted file mode 100644
index 9d9a5597..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/SwaggerConfig.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.springboot.cloud.gateway.admin.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@Configuration
-@EnableSwagger2
-public class SwaggerConfig {
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage("com.springboot.cloud.gateway.admin"))
- .paths(PathSelectors.any())
- .build();
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title("网关管理api")
- .description("网关管理")
- .termsOfServiceUrl("https://github.com/zhoutaoo/SpringCloud")
- .version("2.0")
- .build();
- }
-
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java
deleted file mode 100644
index 99fb658b..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/config/WebServerMvcConfigurerAdapter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.springboot.cloud.gateway.admin.config;
-
-import com.springboot.cloud.common.web.interceptor.UserInterceptor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@Configuration
-public class WebServerMvcConfigurerAdapter implements WebMvcConfigurer {
-
- @Bean
- public HandlerInterceptor userInterceptor() {
- return new UserInterceptor();
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(userInterceptor());
- }
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java
deleted file mode 100644
index 492d9c40..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/dao/GatewayRouteMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.gateway.admin.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-@Mapper
-@Repository
-public interface GatewayRouteMapper extends BaseMapper {
-}
\ No newline at end of file
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java
deleted file mode 100644
index a9895933..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteForm.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.form;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.springboot.cloud.common.web.entity.form.BaseForm;
-import com.springboot.cloud.gateway.admin.entity.po.FilterDefinition;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-import com.springboot.cloud.gateway.admin.entity.po.PredicateDefinition;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
-import java.util.ArrayList;
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@ApiModel
-@Data
-@Slf4j
-public class GatewayRouteForm extends BaseForm {
-
- @NotEmpty(message = "网关断言不能为空")
- @ApiModelProperty(value = "网关断言")
- private List predicates = new ArrayList();
-
- @ApiModelProperty(value = "网关过滤器信息")
- private List filters = new ArrayList();
-
- @NotBlank(message = "uri不能为空")
- @ApiModelProperty(value = "网关uri")
- private String uri;
-
- @NotBlank(message = "路由id不能为空")
- @ApiModelProperty(value = "网关路由id")
- private String routeId;
-
- @ApiModelProperty(value = "排序")
- private Integer orders = 0;
-
- @ApiModelProperty(value = "网关路由描述信息")
- private String description;
-
- @Override
- public GatewayRoute toPo(Class clazz) {
- GatewayRoute gatewayRoute = new GatewayRoute();
- BeanUtils.copyProperties(this, gatewayRoute);
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- gatewayRoute.setFilters(objectMapper.writeValueAsString(this.getFilters()));
- gatewayRoute.setPredicates(objectMapper.writeValueAsString(this.getPredicates()));
- } catch (JsonProcessingException e) {
- log.error("网关filter或predicates配置转换异常", e);
- }
- return gatewayRoute;
- }
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java
deleted file mode 100644
index 6b2a733f..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/form/GatewayRouteQueryForm.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.form;
-
-import com.springboot.cloud.common.web.entity.form.BaseQueryForm;
-import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.Past;
-import java.util.Date;
-
-@EqualsAndHashCode(callSuper = true)
-@ApiModel
-@Data
-public class GatewayRouteQueryForm extends BaseQueryForm {
-
- @ApiModelProperty(value = "uri路径", required = true)
- private String uri;
-
- @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
- @Past(message = "查询开始时间必须小于当前日期")
- @ApiModelProperty(value = "查询开始时间")
- private Date createdTimeStart;
-
- @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
- @Past(message = "查询结束时间必须小于当前日期")
- @ApiModelProperty(value = "查询结束时间")
- private Date createdTimeEnd;
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java
deleted file mode 100644
index 80bbcb3b..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/ov/GatewayRouteVo.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.ov;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.springboot.cloud.common.web.entity.vo.BaseVo;
-import com.springboot.cloud.gateway.admin.entity.po.FilterDefinition;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-import com.springboot.cloud.gateway.admin.entity.po.PredicateDefinition;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.extern.slf4j.Slf4j;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Slf4j
-public class GatewayRouteVo extends BaseVo {
- private String id;
- private String routeId;
- private String description;
- private String status;
- private String uri;
- private Integer orders;
- private String createdBy;
- private Date createdTime;
- private String updatedBy;
- private Date updatedTime;
- private List filters = new ArrayList();
- private List predicates = new ArrayList();
-
- public GatewayRouteVo(GatewayRoute gatewayRoute) {
- this.id = gatewayRoute.getId();
- this.routeId = gatewayRoute.getRouteId();
- this.uri = gatewayRoute.getUri();
- this.description = gatewayRoute.getDescription();
- this.status = gatewayRoute.getStatus();
- this.orders = gatewayRoute.getOrders();
- this.createdBy = gatewayRoute.getCreatedBy();
- this.createdTime = gatewayRoute.getCreatedTime();
- this.updatedBy = gatewayRoute.getUpdatedBy();
- this.updatedTime = gatewayRoute.getUpdatedTime();
- ObjectMapper objectMapper = new ObjectMapper();
- try {
- this.filters = objectMapper.readValue(gatewayRoute.getFilters(), new TypeReference>() {
- });
- this.predicates = objectMapper.readValue(gatewayRoute.getPredicates(), new TypeReference>() {
- });
- } catch (IOException e) {
- log.error("网关路由对象转换失败", e);
- }
- }
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java
deleted file mode 100644
index 78a863f3..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/param/GatewayRouteQueryParam.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.param;
-
-import com.springboot.cloud.common.web.entity.param.BaseParam;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class GatewayRouteQueryParam extends BaseParam {
- private String uri;
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java
deleted file mode 100644
index 298dea6a..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/FilterDefinition.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.po;
-
-import lombok.*;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-@EqualsAndHashCode
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class FilterDefinition {
- private String name;
- private Map args = new LinkedHashMap();
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java
deleted file mode 100644
index 8e855085..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/GatewayRoute.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.po;
-
-import com.springboot.cloud.common.web.entity.po.BasePo;
-import lombok.*;
-
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class GatewayRoute extends BasePo {
- private String uri;
- private String routeId;
- private String predicates;
- private String filters;
- private String description;
- private Integer orders = 0;
- private String status = "Y";
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java
deleted file mode 100644
index aa00b75f..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/entity/po/PredicateDefinition.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.gateway.admin.entity.po;
-
-import lombok.*;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-@EqualsAndHashCode
-@Data
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class PredicateDefinition {
- private String name;
- private Map args = new LinkedHashMap();
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java
deleted file mode 100644
index b5271d11..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/events/EventSender.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.springboot.cloud.gateway.admin.events;
-
-import com.springboot.cloud.gateway.admin.config.BusConfig;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.amqp.support.converter.MessageConverter;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-
-@Component
-@Slf4j
-public class EventSender {
-
- @Autowired
- private RabbitTemplate rabbitTemplate;
-
- @Autowired
- private MessageConverter messageConverter;
-
- @PostConstruct
- public void init() {
- rabbitTemplate.setMessageConverter(messageConverter);
- }
-
- public void send(String routingKey, Object object) {
- log.info("routingKey:{}=>message:{}", routingKey, object);
- rabbitTemplate.convertAndSend(BusConfig.EXCHANGE_NAME, routingKey, object);
- }
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java
deleted file mode 100644
index 27637f4f..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/exception/GlobalExceptionHandlerAdvice.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.springboot.cloud.gateway.admin.exception;
-
-import com.springboot.cloud.common.web.exception.DefaultGlobalExceptionHandlerAdvice;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-
-@RestControllerAdvice
-@Slf4j
-public class GlobalExceptionHandlerAdvice extends DefaultGlobalExceptionHandlerAdvice {
-}
\ No newline at end of file
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java
deleted file mode 100644
index e1f57269..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/rest/GatewayRouteController.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package com.springboot.cloud.gateway.admin.rest;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.gateway.admin.entity.form.GatewayRouteForm;
-import com.springboot.cloud.gateway.admin.entity.form.GatewayRouteQueryForm;
-import com.springboot.cloud.gateway.admin.entity.ov.GatewayRouteVo;
-import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-import com.springboot.cloud.gateway.admin.service.IGatewayRouteService;
-import io.swagger.annotations.*;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-@RestController
-@RequestMapping("/gateway/routes")
-@Api("gateway routes")
-@Slf4j
-public class GatewayRouteController {
-
- @Autowired
- private IGatewayRouteService gatewayRoutService;
-
- @ApiOperation(value = "新增网关路由", notes = "新增一个网关路由")
- @ApiImplicitParam(name = "gatewayRoutForm", value = "新增网关路由form表单", required = true, dataType = "GatewayRouteForm")
- @PostMapping
- public Result add(@Valid @RequestBody GatewayRouteForm gatewayRoutForm) {
- log.info("name:", gatewayRoutForm);
- GatewayRoute gatewayRout = gatewayRoutForm.toPo(GatewayRoute.class);
- return Result.success(gatewayRoutService.add(gatewayRout));
- }
-
- @ApiOperation(value = "删除网关路由", notes = "根据url的id来指定删除对象")
- @ApiImplicitParam(paramType = "path", name = "id", value = "网关路由ID", required = true, dataType = "string")
- @DeleteMapping(value = "/{id}")
- public Result delete(@PathVariable String id) {
- return Result.success(gatewayRoutService.delete(id));
- }
-
- @ApiOperation(value = "修改网关路由", notes = "修改指定网关路由信息")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "id", value = "网关路由ID", required = true, dataType = "string"),
- @ApiImplicitParam(name = "gatewayRoutForm", value = "网关路由实体", required = true, dataType = "GatewayRouteForm")
- })
- @PutMapping(value = "/{id}")
- public Result update(@PathVariable String id, @Valid @RequestBody GatewayRouteForm gatewayRoutForm) {
- GatewayRoute gatewayRout = gatewayRoutForm.toPo(GatewayRoute.class);
- gatewayRout.setId(id);
- return Result.success(gatewayRoutService.update(gatewayRout));
- }
-
- @ApiOperation(value = "获取网关路由", notes = "根据id获取指定网关路由信息")
- @ApiImplicitParam(paramType = "path", name = "id", value = "网关路由ID", required = true, dataType = "string")
- @GetMapping(value = "/{id}")
- public Result get(@PathVariable String id) {
- log.info("get with id:{}", id);
- return Result.success(new GatewayRouteVo(gatewayRoutService.get(id)));
- }
-
- @ApiOperation(value = "根据uri获取网关路由", notes = "根据uri获取网关路由信息,简单查询")
- @ApiImplicitParam(paramType = "query", name = "name", value = "网关路由路径", required = true, dataType = "string")
- @ApiResponses(
- @ApiResponse(code = 200, message = "处理成功", response = Result.class)
- )
- @GetMapping
- public Result getByUri(@RequestParam String uri) {
- return Result.success(gatewayRoutService.query(new GatewayRouteQueryParam(uri)).stream().findFirst());
- }
-
- @ApiOperation(value = "搜索网关路由", notes = "根据条件查询网关路由信息")
- @ApiImplicitParam(name = "gatewayRoutQueryForm", value = "网关路由查询参数", required = true, dataType = "GatewayRouteQueryForm")
- @ApiResponses(
- @ApiResponse(code = 200, message = "处理成功", response = Result.class)
- )
- @PostMapping(value = "/conditions")
- public Result search(@Valid @RequestBody GatewayRouteQueryForm gatewayRouteQueryForm) {
- return Result.success(gatewayRoutService.query(gatewayRouteQueryForm.toParam(GatewayRouteQueryParam.class)));
- }
-
- @ApiOperation(value = "重载网关路由", notes = "将所以网关的路由全部重载到redis中")
- @ApiResponses(
- @ApiResponse(code = 200, message = "处理成功", response = Result.class)
- )
- @PostMapping(value = "/overload")
- public Result overload() {
- return Result.success(gatewayRoutService.overload());
- }
-
-}
\ No newline at end of file
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java
deleted file mode 100644
index 35f490ac..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/IGatewayRouteService.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.springboot.cloud.gateway.admin.service;
-
-import com.springboot.cloud.gateway.admin.entity.ov.GatewayRouteVo;
-import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-
-import java.util.List;
-
-public interface IGatewayRouteService {
- /**
- * 获取网关路由
- *
- * @param id
- * @return
- */
- GatewayRoute get(String id);
-
- /**
- * 新增网关路由
- *
- * @param gatewayRoute
- * @return
- */
- boolean add(GatewayRoute gatewayRoute);
-
- /**
- * 查询网关路由
- *
- * @return
- */
- List query(GatewayRouteQueryParam gatewayRouteQueryParam);
-
- /**
- * 更新网关路由信息
- *
- * @param gatewayRoute
- */
- boolean update(GatewayRoute gatewayRoute);
-
- /**
- * 根据id删除网关路由
- *
- * @param id
- */
- boolean delete(String id);
-
- /**
- * 重新加载网关路由配置到redis
- *
- * @return 成功返回true
- */
- boolean overload();
-}
diff --git a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java b/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java
deleted file mode 100644
index bfc18dc4..00000000
--- a/gateway/gateway-admin/src/main/java/com/springboot/cloud/gateway/admin/service/impl/GatewayRouteService.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package com.springboot.cloud.gateway.admin.service.impl;
-
-import com.alicp.jetcache.Cache;
-import com.alicp.jetcache.anno.CacheType;
-import com.alicp.jetcache.anno.CreateCache;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.springboot.cloud.gateway.admin.config.BusConfig;
-import com.springboot.cloud.gateway.admin.dao.GatewayRouteMapper;
-import com.springboot.cloud.gateway.admin.entity.ov.GatewayRouteVo;
-import com.springboot.cloud.gateway.admin.entity.param.GatewayRouteQueryParam;
-import com.springboot.cloud.gateway.admin.entity.po.GatewayRoute;
-import com.springboot.cloud.gateway.admin.events.EventSender;
-import com.springboot.cloud.gateway.admin.service.IGatewayRouteService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.filter.FilterDefinition;
-import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition;
-import org.springframework.cloud.gateway.route.RouteDefinition;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
-import java.io.IOException;
-import java.net.URI;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Service
-@Slf4j
-public class GatewayRouteService extends ServiceImpl implements IGatewayRouteService {
-
- private static final String GATEWAY_ROUTES = "gateway_routes::";
-
- @CreateCache(name = GATEWAY_ROUTES, cacheType = CacheType.REMOTE)
- private Cache gatewayRouteCache;
-
- @Autowired
- private EventSender eventSender;
-
- @Override
- public boolean add(GatewayRoute gatewayRoute) {
- boolean isSuccess = this.save(gatewayRoute);
- // 转化为gateway需要的类型,缓存到redis, 并事件通知各网关应用
- RouteDefinition routeDefinition = gatewayRouteToRouteDefinition(gatewayRoute);
- gatewayRouteCache.put(gatewayRoute.getRouteId(), routeDefinition);
- eventSender.send(BusConfig.ROUTING_KEY, routeDefinition);
- return isSuccess;
- }
-
- @Override
- public boolean delete(String id) {
- GatewayRoute gatewayRoute = this.getById(id);
- // 删除redis缓存, 并事件通知各网关应用
- gatewayRouteCache.remove(gatewayRoute.getRouteId());
- eventSender.send(BusConfig.ROUTING_KEY, gatewayRouteToRouteDefinition(gatewayRoute));
- return this.removeById(id);
- }
-
- @Override
- public boolean update(GatewayRoute gatewayRoute) {
- boolean isSuccess = this.updateById(gatewayRoute);
- // 转化为gateway需要的类型,缓存到redis, 并事件通知各网关应用
- RouteDefinition routeDefinition = gatewayRouteToRouteDefinition(gatewayRoute);
- gatewayRouteCache.put(gatewayRoute.getRouteId(), routeDefinition);
- eventSender.send(BusConfig.ROUTING_KEY, routeDefinition);
- return isSuccess;
- }
-
- /**
- * 将数据库中json对象转换为网关需要的RouteDefinition对象
- *
- * @param gatewayRoute
- * @return RouteDefinition
- */
- private RouteDefinition gatewayRouteToRouteDefinition(GatewayRoute gatewayRoute) {
- RouteDefinition routeDefinition = new RouteDefinition();
- routeDefinition.setId(gatewayRoute.getRouteId());
- routeDefinition.setOrder(gatewayRoute.getOrders());
- routeDefinition.setUri(URI.create(gatewayRoute.getUri()));
- ObjectMapper objectMapper = new ObjectMapper();
- try {
- routeDefinition.setFilters(objectMapper.readValue(gatewayRoute.getFilters(), new TypeReference>() {
- }));
- routeDefinition.setPredicates(objectMapper.readValue(gatewayRoute.getPredicates(), new TypeReference>() {
- }));
- } catch (IOException e) {
- log.error("网关路由对象转换失败", e);
- }
- return routeDefinition;
- }
-
- @Override
- public GatewayRoute get(String id) {
- return this.getById(id);
- }
-
- @Override
- public List query(GatewayRouteQueryParam gatewayRouteQueryParam) {
- QueryWrapper queryWrapper = gatewayRouteQueryParam.build();
- queryWrapper.eq(StringUtils.isNotBlank(gatewayRouteQueryParam.getUri()), "uri", gatewayRouteQueryParam.getUri());
- return this.list(queryWrapper).stream().map(GatewayRouteVo::new).collect(Collectors.toList());
- }
-
- @Override
- @PostConstruct
- public boolean overload() {
- List gatewayRoutes = this.list(new QueryWrapper());
- gatewayRoutes.forEach(gatewayRoute ->
- gatewayRouteCache.put(gatewayRoute.getRouteId(), gatewayRouteToRouteDefinition(gatewayRoute))
- );
- log.info("全局初使化网关路由成功!");
- return true;
- }
-}
diff --git a/gateway/gateway-admin/src/main/resources/application.yml b/gateway/gateway-admin/src/main/resources/application.yml
deleted file mode 100644
index 9655c936..00000000
--- a/gateway/gateway-admin/src/main/resources/application.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- redis:
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
- #password: ${REDIS_PASSWORD:}
- lettuce:
- pool:
- max-active: 300
-
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:${DATASOURCE_DBTYPE:mysql}://${DATASOURCE_HOST:localhost}:${DATASOURCE_PORT:3306}/sc_gateway?characterEncoding=UTF-8&useUnicode=true&useSSL=false
- username: ${DATASOURCE_USERNAME:root}
- password: ${DATASOURCE_PASSWORD:root123}
-
- zipkin:
- enabled: true
- sender:
- type: rabbit
- sleuth:
- enabled: true
- http:
- legacy:
- enabled: true
-
-jetcache:
- statIntervalMinutes: 15
- areaInCacheName: false
- hidePackages: com.springboot.cloud
- local:
- # 默认永久本地缓存
- default:
- type: caffeine
- keyConvertor: fastjson
- remote:
- # 默认永久的远程缓存
- default:
- type: redis
- keyConvertor: fastjson
- valueEncoder: kryo
- valueDecoder: kryo
- poolConfig:
- minIdle: 5
- maxIdle: 20
- maxTotal: 50
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
-
-logging:
- level:
- com.springboot.cloud.gateway: debug
- com.jalja.org.spring: debug
- path: logs/
- file:
- max-size: 1GB
\ No newline at end of file
diff --git a/gateway/gateway-admin/src/main/resources/bootstrap.yml b/gateway/gateway-admin/src/main/resources/bootstrap.yml
deleted file mode 100644
index 07ec4a9c..00000000
--- a/gateway/gateway-admin/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-server:
- port: ${SERVER_PORT:8445}
-spring:
- application:
- name: gateway-admin
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
- sentinel:
- transport:
- dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
diff --git a/gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java b/gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java
deleted file mode 100644
index c82cb51e..00000000
--- a/gateway/gateway-admin/src/test/java/com/springboot/cloud/gateway/admin/GatewayAdminApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.cloud.gateway.admin;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class GatewayAdminApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/gateway/gateway-admin/src/test/resources/application.yml b/gateway/gateway-admin/src/test/resources/application.yml
deleted file mode 100644
index 02957ced..00000000
--- a/gateway/gateway-admin/src/test/resources/application.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-server:
- port: 8445
-
-spring:
- datasource:
- druid:
- web-stat-filter:
- enabled: false
- url: jdbc:h2:mem:sc_gateway;MODE=PostgreSQL;INIT=RUNSCRIPT FROM './src/main/db/db.sql'
- username: sa
- password:
- driver-class-name: org.h2.Driver
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
- flyway:
- locations: classpath:.
- baseline-on-migrate: true
-
-logging:
- level:
- org.springframework.web: info
- org.apache.ibatis: info
- java.sql.PreparedStatement: info
- java.sql.Statement: info
- Java.sql.Connection: info
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
diff --git a/gateway/gateway-web/.gitignore b/gateway/gateway-web/.gitignore
deleted file mode 100644
index 82eca336..00000000
--- a/gateway/gateway-web/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-/target/
-!.mvn/wrapper/maven-wrapper.jar
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/build/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
\ No newline at end of file
diff --git a/gateway/gateway-web/pom.xml b/gateway/gateway-web/pom.xml
deleted file mode 100644
index 53dcb93a..00000000
--- a/gateway/gateway-web/pom.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- gateway-web
- 0.0.1-SNAPSHOT
- jar
-
- gateway-web
- Demo Gateway Api project for Spring Boot
-
-
- com.springboot.cloud
- gateway
- 0.0.1-SNAPSHOT
-
-
-
-
-
- com.springboot.cloud
- core
- 0.0.1-SNAPSHOT
-
-
-
- org.springframework.cloud
- spring-cloud-starter-gateway
-
-
-
- org.springframework.boot
- spring-boot-starter-data-redis-reactive
-
-
-
- io.springfox
- springfox-swagger-ui
- 2.9.2
-
-
- io.springfox
- springfox-swagger2
- 2.9.2
-
-
-
- com.springboot.cloud
- authentication-client
- 0.0.1-SNAPSHOT
-
-
- io.jsonwebtoken
- jjwt
- 0.9.1
-
-
-
-
-
-
-
- com.spotify
- docker-maven-plugin
- 1.2.0
-
-
- cike/${project.artifactId}
- ${project.basedir}/src/main/docker
- true
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
-
diff --git a/gateway/gateway-web/readme.md b/gateway/gateway-web/readme.md
deleted file mode 100644
index 0f4e5486..00000000
--- a/gateway/gateway-web/readme.md
+++ /dev/null
@@ -1,47 +0,0 @@
-网关应用
-----------
-
-## 关键词
-
-`路由、网关`
-
-## 简介
-
-网关应用,提供网关路由转发、降级、熔断、请求处理等网关功能。
-
-## 启动
-
-### 先决条件
-
-- [redis](http://redis.io/download)
-- [postgresql](http://www.postgresql.org/)
-- [rabbitmq](http://rabbitmq.io/download)
-- [nacos](../../docs/register.md)
-
-### 启动命令
-
-进入应用目录
-
-启动命令:`mvn spring-boot:run`
-
-docker镜像打包:`mvn docker:build`
-
-## 使用指南
-
-### 路由功能
-
-网关的路由信息请通过管理端进行添加,只增加数据库是不能生效的。
-
-[网关管理应用文档](../gateway-admin)
-
-
-请求通过网关时,网关会取redis中缓存的配置,结构如下图
-
-
-
-
-### API文档聚合
-
-网关默认聚合了所有已在网关中配置过路由的应用的swagger文档
-
-默认地址:http://localhost:8443/swagger-ui.html
\ No newline at end of file
diff --git a/gateway/gateway-web/src/main/docker/Dockerfile b/gateway/gateway-web/src/main/docker/Dockerfile
deleted file mode 100644
index fce2123d..00000000
--- a/gateway/gateway-web/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:alpine
-VOLUME /tmp
-ADD gateway-web-0.0.1-SNAPSHOT.jar app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java
deleted file mode 100644
index 28b43122..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/GatewayApplication.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.springboot.cloud.gateway;
-
-import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
-import com.alicp.jetcache.anno.config.EnableMethodCache;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableFeignClients(basePackages = "com.springboot.cloud.auth.client")
-@EnableCircuitBreaker
-@EnableMethodCache(basePackages = "com.springboot.cloud")
-@EnableCreateCacheAnnotation
-public class GatewayApplication {
- public static void main(String[] args) {
- SpringApplication.run(GatewayApplication.class, args);
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java
deleted file mode 100644
index e94b91a5..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/BusConfig.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.springboot.cloud.gateway.config;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.springboot.cloud.gateway.events.BusReceiver;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.core.*;
-import org.springframework.amqp.rabbit.connection.ConnectionFactory;
-import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
-import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
-import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter;
-import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
-import org.springframework.amqp.support.converter.MessageConverter;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@Slf4j
-public class BusConfig {
-
- private static final String EXCHANGE_NAME = "spring-boot-exchange";
- private static final String ROUTING_KEY = "gateway-route";
-
- @Value("${spring.application.name}")
- private String appName;
-
- @Bean
- Queue queue() {
- String queueName = new Base64UrlNamingStrategy(appName + ".").generateName();
- log.info("queue name:{}", queueName);
- return new Queue(queueName, false);
- }
-
- @Bean
- TopicExchange exchange() {
- log.info("exchange:{}", EXCHANGE_NAME);
- return new TopicExchange(EXCHANGE_NAME);
- }
-
- @Bean
- Binding binding(Queue queue, TopicExchange exchange) {
- log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY);
- return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);
- }
-
- @Bean
- SimpleMessageListenerContainer simpleMessageListenerContainer(ConnectionFactory connectionFactory, MessageListenerAdapter messageListenerAdapter, Queue queue) {
- log.info("init simpleMessageListenerContainer: {}", queue.getName());
- SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
- container.setQueueNames(queue.getName());
- container.setMessageListener(messageListenerAdapter);
- return container;
- }
-
- @Bean
- MessageListenerAdapter messageListenerAdapter(BusReceiver busReceiver, MessageConverter messageConverter) {
- log.info("new listener");
- return new MessageListenerAdapter(busReceiver, messageConverter);
- }
-
- @Bean
- public MessageConverter messageConverter() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper));
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java
deleted file mode 100644
index 8f086a48..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/DefaultRedisRateLimiter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.springboot.cloud.gateway.config;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.core.ReactiveRedisTemplate;
-import org.springframework.data.redis.core.script.RedisScript;
-import org.springframework.validation.Validator;
-import reactor.core.publisher.Mono;
-
-import java.util.List;
-
-@Configuration
-public class DefaultRedisRateLimiter extends RedisRateLimiter {
-
- Config getDefaultConfig() {
- return super.getConfig().get("defaultFilters");
- }
-
- public DefaultRedisRateLimiter(ReactiveRedisTemplate redisTemplate,
- RedisScript> script,
- @Qualifier("defaultValidator") Validator validator) {
- super(redisTemplate, script, validator);
- }
-
- @Override
- public Mono isAllowed(String routeId, String id) {
- if (null == super.getConfig().get(routeId))
- getConfig().put(routeId, getDefaultConfig());
- return super.isAllowed(routeId, id);
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java
deleted file mode 100644
index e155632d..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/RequestRateLimiterConfig.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.springboot.cloud.gateway.config;
-
-import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-import reactor.core.publisher.Mono;
-
-/**
- * 自定义限流标志的key,多个维度可以从这里入手
- * exchange对象中获取服务ID、请求信息,用户信息等
- */
-@Component
-public class RequestRateLimiterConfig {
-
- /**
- * ip地址限流
- *
- * @return 限流key
- */
- @Bean
- @Primary
- public KeyResolver remoteAddressKeyResolver() {
- return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getHostName());
- }
-
- /**
- * 请求路径限流
- *
- * @return 限流key
- */
- @Bean
- public KeyResolver apiKeyResolver() {
- return exchange -> Mono.just(exchange.getRequest().getPath().value());
- }
-
- /**
- * username限流
- *
- * @return 限流key
- */
- @Bean
- public KeyResolver userKeyResolver() {
- return exchange -> Mono.just(exchange.getRequest().getQueryParams().getFirst("username"));
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java
deleted file mode 100644
index 5a418351..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerHandler.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.springboot.cloud.gateway.config;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import reactor.core.publisher.Mono;
-import springfox.documentation.swagger.web.*;
-
-import java.util.Optional;
-
-@RestController
-@RequestMapping("/swagger-resources")
-public class SwaggerHandler {
-
- @Autowired(required = false)
- private SecurityConfiguration securityConfiguration;
-
- @Autowired(required = false)
- private UiConfiguration uiConfiguration;
-
- private final SwaggerResourcesProvider swaggerResources;
-
- @Autowired
- public SwaggerHandler(SwaggerResourcesProvider swaggerResources) {
- this.swaggerResources = swaggerResources;
- }
-
-
- @GetMapping("/configuration/security")
- public Mono> securityConfiguration() {
- return Mono.just(new ResponseEntity(
- Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK));
- }
-
- @GetMapping("/configuration/ui")
- public Mono> uiConfiguration() {
- return Mono.just(new ResponseEntity(
- Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK));
- }
-
- @GetMapping("")
- public Mono swaggerResources() {
- return Mono.just((new ResponseEntity(swaggerResources.get(), HttpStatus.OK)));
- }
-}
\ No newline at end of file
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java
deleted file mode 100644
index 24c0f790..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/config/SwaggerProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.springboot.cloud.gateway.config;
-
-import com.springboot.cloud.gateway.service.impl.RouteService;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Primary;
-import org.springframework.stereotype.Component;
-import springfox.documentation.swagger.web.SwaggerResource;
-import springfox.documentation.swagger.web.SwaggerResourcesProvider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Component
-@Primary
-@AllArgsConstructor
-@Slf4j
-public class SwaggerProvider implements SwaggerResourcesProvider {
- public static final String API_URI = "/v2/api-docs";
-
- @Autowired
- private final RouteService routeService;
-
- @Override
- public List get() {
- List resources = new ArrayList();
- routeService.getRouteDefinitions().stream()
- .forEach(routeDefinition -> routeDefinition.getPredicates().stream()
- .filter(predicateDefinition -> "Path".equalsIgnoreCase(predicateDefinition.getName()))
- .peek(predicateDefinition -> log.debug("路由配置参数:{}", predicateDefinition.getArgs()))
- .forEach(predicateDefinition -> resources.add(swaggerResource(routeDefinition.getId(),
- predicateDefinition.getArgs().get("pattern").replace("/**", API_URI)))));
- log.debug("resources:{}", resources);
- return resources;
- }
-
- private SwaggerResource swaggerResource(String name, String location) {
- SwaggerResource swaggerResource = new SwaggerResource();
- swaggerResource.setName(name);
- swaggerResource.setSwaggerVersion("2.0");
- swaggerResource.setUrl(location);
- return swaggerResource;
- }
-}
\ No newline at end of file
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java
deleted file mode 100644
index 17f24dc0..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/events/BusReceiver.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.springboot.cloud.gateway.events;
-
-import com.springboot.cloud.gateway.service.IRouteService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.route.RouteDefinition;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class BusReceiver {
-
- @Autowired
- private IRouteService routeService;
-
- public void handleMessage(RouteDefinition routeDefinition) {
- log.info("Received Message:<{}>", routeDefinition);
- // 待实现动态del路由
- routeService.save(routeDefinition);
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java
deleted file mode 100644
index faa67a70..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/CustomErrorWebExceptionHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.springboot.cloud.gateway.exception;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.web.ErrorProperties;
-import org.springframework.boot.autoconfigure.web.ResourceProperties;
-import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler;
-import org.springframework.boot.web.reactive.error.ErrorAttributes;
-import org.springframework.context.ApplicationContext;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.web.reactive.function.BodyInserters;
-import org.springframework.web.reactive.function.server.*;
-import reactor.core.publisher.Mono;
-
-import java.util.Map;
-
-@Slf4j
-public class CustomErrorWebExceptionHandler extends DefaultErrorWebExceptionHandler {
-
- @Autowired
- private GateWayExceptionHandlerAdvice gateWayExceptionHandlerAdvice;
-
- /**
- * Create a new {@code DefaultErrorWebExceptionHandler} instance.
- *
- * @param errorAttributes the error attributes
- * @param resourceProperties the resources configuration properties
- * @param errorProperties the error configuration properties
- * @param applicationContext the current application context
- */
- public CustomErrorWebExceptionHandler(ErrorAttributes errorAttributes, ResourceProperties resourceProperties,
- ErrorProperties errorProperties, ApplicationContext applicationContext) {
- super(errorAttributes, resourceProperties, errorProperties, applicationContext);
- }
-
- @Override
- protected RouterFunction getRoutingFunction(ErrorAttributes errorAttributes) {
- return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse);
- }
-
- @Override
- protected Mono renderErrorResponse(ServerRequest request) {
- Map error = getErrorAttributes(request, isIncludeStackTrace(request, MediaType.ALL));
- HttpStatus errorStatus = getHttpStatus(error);
- Throwable throwable = getError(request);
- return ServerResponse.status(errorStatus)
- .contentType(MediaType.APPLICATION_JSON_UTF8)
- .body(BodyInserters.fromObject(gateWayExceptionHandlerAdvice.handle(throwable)));
- //.doOnNext((resp) -> logError(request, errorStatus));
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java
deleted file mode 100644
index d8a27d46..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/ExceptionAutoConfiguration.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.springboot.cloud.gateway.exception;
-
-import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.boot.autoconfigure.AutoConfigureBefore;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
-import org.springframework.boot.autoconfigure.web.ResourceProperties;
-import org.springframework.boot.autoconfigure.web.ServerProperties;
-import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
-import org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.reactive.error.ErrorAttributes;
-import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.codec.ServerCodecConfigurer;
-import org.springframework.web.reactive.config.WebFluxConfigurer;
-import org.springframework.web.reactive.result.view.ViewResolver;
-
-import java.util.Collections;
-import java.util.List;
-
-@Configuration
-@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
-@ConditionalOnClass(WebFluxConfigurer.class)
-@AutoConfigureBefore(WebFluxAutoConfiguration.class)
-@EnableConfigurationProperties({ServerProperties.class, ResourceProperties.class})
-public class ExceptionAutoConfiguration {
-
- private ServerProperties serverProperties;
-
- private ApplicationContext applicationContext;
-
- private ResourceProperties resourceProperties;
-
- private List viewResolvers;
-
- private ServerCodecConfigurer serverCodecConfigurer;
-
- public ExceptionAutoConfiguration(ServerProperties serverProperties,
- ResourceProperties resourceProperties,
- ObjectProvider> viewResolversProvider,
- ServerCodecConfigurer serverCodecConfigurer,
- ApplicationContext applicationContext) {
- this.serverProperties = serverProperties;
- this.applicationContext = applicationContext;
- this.resourceProperties = resourceProperties;
- this.viewResolvers = viewResolversProvider
- .getIfAvailable(() -> Collections.emptyList());
- this.serverCodecConfigurer = serverCodecConfigurer;
- }
-
- @Bean
- public ErrorWebExceptionHandler errorWebExceptionHandler(ErrorAttributes errorAttributes) {
- DefaultErrorWebExceptionHandler exceptionHandler = new CustomErrorWebExceptionHandler(
- errorAttributes, this.resourceProperties,
- this.serverProperties.getError(), this.applicationContext);
- exceptionHandler.setViewResolvers(this.viewResolvers);
- exceptionHandler.setMessageWriters(this.serverCodecConfigurer.getWriters());
- exceptionHandler.setMessageReaders(this.serverCodecConfigurer.getReaders());
- return exceptionHandler;
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java
deleted file mode 100644
index f49a5506..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/exception/GateWayExceptionHandlerAdvice.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.springboot.cloud.gateway.exception;
-
-import com.springboot.cloud.common.core.entity.vo.Result;
-import com.springboot.cloud.common.core.exception.SystemErrorType;
-import io.jsonwebtoken.ExpiredJwtException;
-import io.jsonwebtoken.MalformedJwtException;
-import io.jsonwebtoken.SignatureException;
-import io.netty.channel.ConnectTimeoutException;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.cloud.gateway.support.NotFoundException;
-import org.springframework.http.HttpStatus;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.server.ResponseStatusException;
-
-@Slf4j
-@Component
-public class GateWayExceptionHandlerAdvice {
-
- @ExceptionHandler(value = {ResponseStatusException.class})
- public Result handle(ResponseStatusException ex) {
- log.error("response status exception:{}", ex.getMessage());
- return Result.fail(SystemErrorType.GATEWAY_ERROR);
- }
-
- @ExceptionHandler(value = {ConnectTimeoutException.class})
- public Result handle(ConnectTimeoutException ex) {
- log.error("connect timeout exception:{}", ex.getMessage());
- return Result.fail(SystemErrorType.GATEWAY_CONNECT_TIME_OUT);
- }
-
- @ExceptionHandler(value = {NotFoundException.class})
- @ResponseStatus(HttpStatus.NOT_FOUND)
- public Result handle(NotFoundException ex) {
- log.error("not found exception:{}", ex.getMessage());
- return Result.fail(SystemErrorType.GATEWAY_NOT_FOUND_SERVICE);
- }
-
- @ExceptionHandler(value = {ExpiredJwtException.class})
- @ResponseStatus(HttpStatus.UNAUTHORIZED)
- public Result handle(ExpiredJwtException ex) {
- log.error("ExpiredJwtException:{}", ex.getMessage());
- return Result.fail(SystemErrorType.INVALID_TOKEN);
- }
-
- @ExceptionHandler(value = {SignatureException.class})
- @ResponseStatus(HttpStatus.UNAUTHORIZED)
- public Result handle(SignatureException ex) {
- log.error("SignatureException:{}", ex.getMessage());
- return Result.fail(SystemErrorType.INVALID_TOKEN);
- }
-
- @ExceptionHandler(value = {MalformedJwtException.class})
- @ResponseStatus(HttpStatus.UNAUTHORIZED)
- public Result handle(MalformedJwtException ex) {
- log.error("MalformedJwtException:{}", ex.getMessage());
- return Result.fail(SystemErrorType.INVALID_TOKEN);
- }
-
- @ExceptionHandler(value = {RuntimeException.class})
- @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- public Result handle(RuntimeException ex) {
- log.error("runtime exception:{}", ex.getMessage());
- return Result.fail();
- }
-
- @ExceptionHandler(value = {Exception.class})
- @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- public Result handle(Exception ex) {
- log.error("exception:{}", ex.getMessage());
- return Result.fail();
- }
-
- @ExceptionHandler(value = {Throwable.class})
- @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- public Result handle(Throwable throwable) {
- Result result = Result.fail();
- if (throwable instanceof ResponseStatusException) {
- result = handle((ResponseStatusException) throwable);
- } else if (throwable instanceof ConnectTimeoutException) {
- result = handle((ConnectTimeoutException) throwable);
- } else if (throwable instanceof NotFoundException) {
- result = handle((NotFoundException) throwable);
- } else if (throwable instanceof RuntimeException) {
- result = handle((RuntimeException) throwable);
- } else if (throwable instanceof Exception) {
- result = handle((Exception) throwable);
- }
- return result;
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java
deleted file mode 100644
index b4afd2b7..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/AccessGatewayFilter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package com.springboot.cloud.gateway.filter;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.springboot.cloud.auth.client.service.IAuthService;
-import com.springboot.cloud.gateway.service.IPermissionService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-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.web.server.ServerWebExchange;
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-/**
- * 请求url权限校验
- */
-@Configuration
-@ComponentScan(basePackages = "com.springboot.cloud.auth.client")
-@Slf4j
-public class AccessGatewayFilter implements GlobalFilter {
-
- private static final String X_CLIENT_TOKEN_USER = "x-client-token-user";
- private static final String X_CLIENT_TOKEN = "x-client-token";
-
- /**
- * 由authentication-client模块提供签权的feign客户端
- */
- @Autowired
- private IAuthService authService;
-
- @Autowired
- private IPermissionService permissionService;
-
- /**
- * 1.首先网关检查token是否有效,无效直接返回401,不调用签权服务
- * 2.调用签权服务器看是否对该请求有权限,有权限进入下一个filter,没有权限返回401
- *
- * @param exchange
- * @param chain
- * @return
- */
- @Override
- public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
- ServerHttpRequest request = exchange.getRequest();
- String authentication = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
- String method = request.getMethodValue();
- String url = request.getPath().value();
- log.debug("url:{},method:{},headers:{}", url, method, request.getHeaders());
- //不需要网关签权的url
- if (authService.ignoreAuthentication(url)) {
- return chain.filter(exchange);
- }
-
- //调用签权服务看用户是否有权限,若有权限进入下一个filter
- if (permissionService.permission(authentication, url, method)) {
- ServerHttpRequest.Builder builder = request.mutate();
- //TODO 转发的请求都加上服务间认证token
- builder.header(X_CLIENT_TOKEN, "TODO zhoutaoo添加服务间简单认证");
- //将jwt token中的用户信息传给服务
- builder.header(X_CLIENT_TOKEN_USER, getUserToken(authentication));
- return chain.filter(exchange.mutate().request(builder.build()).build());
- }
- return unauthorized(exchange);
- }
-
- /**
- * 提取jwt token中的数据,转为json
- *
- * @param authentication
- * @return
- */
- private String getUserToken(String authentication) {
- String token = "{}";
- try {
- token = new ObjectMapper().writeValueAsString(authService.getJwt(authentication).getBody());
- return token;
- } catch (JsonProcessingException e) {
- log.error("token json error:{}", e.getMessage());
- }
- return token;
- }
-
- /**
- * 网关拒绝,返回401
- *
- * @param
- */
- private Mono unauthorized(ServerWebExchange serverWebExchange) {
- serverWebExchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
- DataBuffer buffer = serverWebExchange.getResponse()
- .bufferFactory().wrap(HttpStatus.UNAUTHORIZED.getReasonPhrase().getBytes());
- return serverWebExchange.getResponse().writeWith(Flux.just(buffer));
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java
deleted file mode 100644
index 5913706c..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/filter/SwaggerHeaderFilter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.springboot.cloud.gateway.filter;
-
-import com.springboot.cloud.gateway.config.SwaggerProvider;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.core.Ordered;
-import org.springframework.http.server.reactive.ServerHttpRequest;
-import org.springframework.web.server.ServerWebExchange;
-import reactor.core.publisher.Mono;
-
-//@Component
-@Slf4j
-public class SwaggerHeaderFilter implements GlobalFilter, Ordered {
-
- private static final String HEADER_NAME = "X-Forwarded-Prefix";
-
- @Override
- public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
- ServerHttpRequest request = exchange.getRequest();
- String path = request.getURI().getPath();
- if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) {
- return chain.filter(exchange);
- }
- String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI));
- log.info("basePath: {}", basePath);
- ServerHttpRequest newRequest = request.mutate().header(HEADER_NAME, basePath).build();
- ServerWebExchange newExchange = exchange.mutate().request(newRequest).build();
- return chain.filter(newExchange);
- }
-
- @Override
- public int getOrder() {
- return -200;
- }
-}
\ No newline at end of file
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java
deleted file mode 100644
index 858d1ff6..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/routes/RedisRouteDefinitionRepository.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.springboot.cloud.gateway.routes;
-
-import com.springboot.cloud.gateway.service.impl.RouteService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.route.RouteDefinition;
-import org.springframework.cloud.gateway.route.RouteDefinitionRepository;
-import org.springframework.stereotype.Component;
-import reactor.core.publisher.Flux;
-import reactor.core.publisher.Mono;
-
-@Component
-@Slf4j
-public class RedisRouteDefinitionRepository implements RouteDefinitionRepository {
-
- @Autowired
- private RouteService routeService;
-
- @Override
- public Flux getRouteDefinitions() {
- return Flux.fromIterable(routeService.getRouteDefinitions());
- }
-
- @Override
- public Mono save(Mono route) {
- return route.flatMap(routeDefinition -> {
- routeService.save(routeDefinition);
- return Mono.empty();
- });
- }
-
- @Override
- public Mono delete(Mono routeId) {
- return routeId.flatMap(id -> {
- routeService.delete(id);
- return Mono.empty();
- });
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/IPermissionService.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/IPermissionService.java
deleted file mode 100644
index f4b5a702..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/IPermissionService.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.gateway.service;
-
-public interface IPermissionService {
- /**
- * @param authentication
- * @param method
- * @param url
- * @return
- */
- boolean permission(String authentication, String url, String method);
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/IRouteService.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/IRouteService.java
deleted file mode 100644
index a09f1468..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/IRouteService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.springboot.cloud.gateway.service;
-
-import org.springframework.cloud.gateway.route.RouteDefinition;
-
-import java.util.Collection;
-
-public interface IRouteService {
- Collection getRouteDefinitions();
-
- boolean save(RouteDefinition routeDefinition);
-
- boolean delete(String routeId);
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionService.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionService.java
deleted file mode 100644
index c89e839f..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/PermissionService.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.springboot.cloud.gateway.service.impl;
-
-import com.alicp.jetcache.anno.CacheType;
-import com.alicp.jetcache.anno.Cached;
-import com.springboot.cloud.auth.client.service.IAuthService;
-import com.springboot.cloud.gateway.service.IPermissionService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.concurrent.TimeUnit;
-
-@Service
-public class PermissionService implements IPermissionService {
-
- /**
- * 由authentication-client模块提供签权的feign客户端
- */
- @Autowired
- private IAuthService authService;
-
- @Override
- @Cached(name = "gateway_auth::", key = "#authentication+#method+#url",
- cacheType = CacheType.LOCAL, expire = 10, timeUnit = TimeUnit.SECONDS, localLimit = 10000)
- public boolean permission(String authentication, String url, String method) {
- return authService.hasPermission(authentication, url, method);
- }
-}
diff --git a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteService.java b/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteService.java
deleted file mode 100644
index 96f414db..00000000
--- a/gateway/gateway-web/src/main/java/com/springboot/cloud/gateway/service/impl/RouteService.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.springboot.cloud.gateway.service.impl;
-
-import com.alicp.jetcache.Cache;
-import com.alicp.jetcache.anno.CacheType;
-import com.alicp.jetcache.anno.CreateCache;
-import com.springboot.cloud.gateway.service.IRouteService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.route.RouteDefinition;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import javax.annotation.PostConstruct;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-@Service
-@Slf4j
-public class RouteService implements IRouteService {
-
- private static final String GATEWAY_ROUTES = "gateway_routes::";
-
- @Autowired
- private StringRedisTemplate stringRedisTemplate;
-
- @CreateCache(name = GATEWAY_ROUTES, cacheType = CacheType.REMOTE)
- private Cache gatewayRouteCache;
-
- private Map routeDefinitionMaps = new HashMap();
-
- @PostConstruct
- private void loadRouteDefinition() {
- log.info("loadRouteDefinition, 开始初使化路由");
- Set gatewayKeys = stringRedisTemplate.keys(GATEWAY_ROUTES + "*");
- if (CollectionUtils.isEmpty(gatewayKeys)) {
- return;
- }
- log.info("预计初使化路由, gatewayKeys:{}", gatewayKeys);
- // 去掉key的前缀
- Set gatewayKeyIds = gatewayKeys.stream().map(key -> {
- return key.replace(GATEWAY_ROUTES, StringUtils.EMPTY);
- }).collect(Collectors.toSet());
- Map allRoutes = gatewayRouteCache.getAll(gatewayKeyIds);
- log.info("gatewayKeys:{}", allRoutes);
- // 以下代码原因是,jetcache将RouteDefinition返序列化后,uri发生变化,未初使化,导致路由异常,以下代码是重新初使化uri
- allRoutes.values().forEach(routeDefinition -> {
- try {
- routeDefinition.setUri(new URI(routeDefinition.getUri().toASCIIString()));
- } catch (URISyntaxException e) {
- log.error("网关加载RouteDefinition异常:", e);
- }
- });
- routeDefinitionMaps.putAll(allRoutes);
- log.info("共初使化路由信息:{}", routeDefinitionMaps.size());
- }
-
- @Override
- public Collection getRouteDefinitions() {
- return routeDefinitionMaps.values();
- }
-
- @Override
- public boolean save(RouteDefinition routeDefinition) {
- routeDefinitionMaps.put(routeDefinition.getId(), routeDefinition);
- log.info("新增路由1条:{},目前路由共{}条", routeDefinition, routeDefinitionMaps.size());
- return true;
- }
-
- @Override
- public boolean delete(String routeId) {
- routeDefinitionMaps.remove(routeId);
- log.info("删除路由1条:{},目前路由共{}条", routeId, routeDefinitionMaps.size());
- return true;
- }
-}
diff --git a/gateway/gateway-web/src/main/resources/application.yml b/gateway/gateway-web/src/main/resources/application.yml
deleted file mode 100644
index 98cdfc5c..00000000
--- a/gateway/gateway-web/src/main/resources/application.yml
+++ /dev/null
@@ -1,91 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- redis:
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
- #password: ${REDIS_PASSWORD:}
- lettuce:
- pool:
- max-active: 300
-
- zipkin:
- enabled: true
- sender:
- type: rabbit
- sleuth:
- enabled: true
- http:
- legacy:
- enabled: true
- #jwt密码
- security:
- oauth2:
- jwt:
- signingKey: 123456
- cloud:
- gateway:
- default-filters:
- - name: Retry
- args:
- retries: 3
- statuses: BAD_GATEWAY
- - AddResponseHeader=X-Response-Default-Foo, Default-Bar
- - name: RequestRateLimiter
- args:
- redis-rate-limiter.replenishRate: 2 #流速 每秒
- redis-rate-limiter.burstCapacity: 10 #令牌桶的容积
- rate-limiter: "#{@defaultRedisRateLimiter}" #SPEL表达式去的对应的bean
- key-resolver: "#{@apiKeyResolver}" #SPEL表达式去的对应的bean
-
-feign:
- sentinel:
- enabled: true
- okhttp:
- enabled: true
-
-jetcache:
- statIntervalMinutes: 1
- areaInCacheName: false
- hidePackages: com.springboot.cloud
- local:
- # 默认永久本地缓存
- default:
- type: caffeine
- keyConvertor: fastjson
- remote:
- # 默认永久的远程缓存
- default:
- type: redis
- keyConvertor: fastjson
- valueEncoder: kryo
- valueDecoder: kryo
- poolConfig:
- minIdle: 5
- maxIdle: 20
- maxTotal: 50
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
-
-#网关白名单,无需要签权url
-gate:
- ignore:
- authentication:
- startWith: /oauth,/open,/v2/api-docs
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
-
-logging:
- level:
- com.springboot.cloud: debug
- com.jalja.org.spring: debug
- path: logs/
- file:
- max-size: 1GB
\ No newline at end of file
diff --git a/gateway/gateway-web/src/main/resources/bootstrap.yml b/gateway/gateway-web/src/main/resources/bootstrap.yml
deleted file mode 100644
index 3de47f52..00000000
--- a/gateway/gateway-web/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-server:
- port: ${SERVER_PORT:8443}
-spring:
- application:
- name: gateway-web
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
- sentinel:
- transport:
- dashboard: ${SENTINEL_DASHBOARD_HOST:localhost}:${SENTINEL_DASHBOARD_PORT:8021}
diff --git a/gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java b/gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java
deleted file mode 100644
index 2f351f2d..00000000
--- a/gateway/gateway-web/src/test/java/com/springboot/cloud/gateway/GatewayApplicationTests.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.springboot.cloud.gateway;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@AutoConfigureMockMvc
-public class GatewayApplicationTests {
-
- @Test
- public void contextLoads() {
-
- }
-}
diff --git a/gateway/gateway-web/src/test/resources/application.yml b/gateway/gateway-web/src/test/resources/application.yml
deleted file mode 100644
index 0468b17d..00000000
--- a/gateway/gateway-web/src/test/resources/application.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-server:
- port: 8443
-
-spring:
- mvc:
- throw-exception-if-no-handler-found: true
- servlet:
- multipart:
- max-request-size: "2MB"
- max-file-size: "2MB"
- jackson:
- time-zone: GMT+8
-
-logging:
- level:
- org.springframework.web: info
- org.apache.ibatis: info
- java.sql.PreparedStatement: info
- java.sql.Statement: info
- Java.sql.Connection: info
- path: logs/
- file:
- max-size: 1GB
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
diff --git a/gateway/pom.xml b/gateway/pom.xml
deleted file mode 100644
index 3ec220df..00000000
--- a/gateway/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- 4.0.0
-
-
- com.springboot.cloud
- cloud
- 0.0.1-SNAPSHOT
-
-
- com.springboot.cloud
- gateway
- 0.0.1-SNAPSHOT
- pom
-
- gateway
- Demo Gateway project for Spring Cloud
-
-
- gateway-web
- gateway-admin
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
-
- com.alicp.jetcache
- jetcache-starter-redis
- 2.5.14
-
-
- org.apache.commons
- commons-pool2
- 2.6.0
-
-
-
diff --git a/gateway/readme.md b/gateway/readme.md
deleted file mode 100644
index 2cfaeefe..00000000
--- a/gateway/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-网关子项目简介
----------
-
-## 关键词
-
-springcloud gateway、RateLimiter(限流)、动态路由、网关
-
-## 简介
-
-SpringCloud Gateway是基于Spring Framework 5,Project Reactor和Spring Boot 2.0构建,目标是用于替代zuul。本项目网关管理端应用如下:
-
-| 服务名 | 简介 | 默认地址 |
-|--------------------|---------------------|--------------------------|
-| gateway-admin | 网关管理应用 | http://localhost:8445 |
-| gateway-web | 网关入口应用 | http://localhost:8443 |
-
-gateway-admin下 `src/main/db` 脚本是动态路由的存储结构,启动项目前先建立好库和表
-
-## 架构
-
-所有服务对外提供服务原则上全都从gateway出,进行统一管理和控制。
-
-
-
-## 使用指南
-
-[网关管理应用文档](./gateway-admin)
-
-[网关应用文档](./gateway-web)
diff --git a/install.sh b/install.sh
deleted file mode 100755
index 6741c3a4..00000000
--- a/install.sh
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/env bash
-echo '==================1.开发环境准备================================'
-echo '1.1请确保安装并java8, git, maven并设置好环境变量'
-echo '1.2请确保安装并docker,docker-compose并设置好环境变量'
-
-#确认环境信息准备就绪
-read -r -p "开发环境准备好了吗? [Y/n] " envConfirm
-case $envConfirm in
- [yY][eE][sS]|[yY])
- echo "Yes 继续执行"
- ;;
- [nN][oO]|[nN])
- echo "No 终止执行"
- exit 1
- ;;
- *)
- echo "Invalid input... 终止执行"
- exit 1
- ;;
-esac
-
-echo '==================1.3清理当前脚本启动的容器和产生的镜像(可选的)=============='
-#清理当前脚本启动的容器和产生的镜像(可选的)
-#docker stop sc-rabbitmq sc-redis sc-mysql
-#docker rm sc-rabbitmq sc-redis sc-mysql
-#docker image rm rabbitmq:alpine redis:alpine mysql:9.6-alpine
-
-#docker stop sc-monitor-admin sc-authorization-server sc-authentication-server sc-organization sc-gateway-admin sc-gateway-web
-#docker rm sc-monitor-admin sc-authorization-server sc-authentication-server sc-organization sc-gateway-admin sc-gateway-web
-#docker image rm cike/admin cike/authorization-server:latest cike/authentication-server:latest cike/organization:latest cike/gateway-admin:latest cike/gateway-web:latest
-
-echo '==================2.安装认证公共包到本地maven仓库=================='
-#安装认证公共包到本地maven仓库
-cd common && mvn install
-echo '当前目录:' && pwd
-
-#回到根目录
-cd -
-
-echo '==================3.安装认证客户端到本地maven仓库=================='
-#安装认证客户端到本地maven仓库
-cd auth/authentication-client && mvn install
-echo '当前目录:' && pwd
-
-#回到根目录
-cd -
-
-echo '==================4.docker-compose启动公共服务==================='
-#去docker-compose目录
-cd docker-compose
-echo '==================4.1显示环境变量: docker-compose/.env =========='
-#显示环境变量
-cat ./.env
-echo ''
-
-#按需要开启公共服务
-echo '==================4.2启动 mysql or redis or rabbitmq ========'
-docker-compose -f docker-compose.yml up -d mysql
-docker-compose -f docker-compose.yml up -d redis
-docker-compose -f docker-compose.yml up -d rabbitmq
-
-echo '当前目录:' && pwd
-
-#回到根目录
-cd -
-
-echo '==================4.3.构建镜像: 配置中心, 消息中心========'
-
-#构建镜像:消息中心
-cd ./center/bus
-mvn package && mvn docker:build
-
-#回到根目录
-cd -
-
-echo '==================4.4.启动注册中心, 配置中心, 消息中心============'
-#去docker-compose目录
-cd docker-compose
-
-#启动注册中心
-docker-compose -f docker-compose.yml -f docker-compose.nacos.yml up -d nacos
-
-#回到根目录
-cd -
-
-echo '==================5.构建镜像并启动网关(gateway)相关服务==============='
-#构建镜像:网关服务
-cd ./gateway/gateway-web
-mvn package && mvn docker:build
-
-#回到根目录
-cd -
-
-#构建镜像:网关管理服务
-cd ./gateway/gateway-admin
-mvn package && mvn docker:build
-
-#确认初始化网关服务的DB:./gateway/gateway-admin/src/main/db
-echo '你可以立即去部署网关服务的DB(脚本路径:./gateway/gateway-admin/src/main/db),然后回来继续...'
-read -r -p "确认网关服务的DB部署好了吗? [Y/n] " gwDbConfirm
-case $gwDbConfirm in
- [yY][eE][sS]|[yY])
- echo "Yes 继续执行"
- ;;
- [nN][oO]|[nN])
- echo "No 终止执行"
- exit 1
- ;;
- *)
- echo "Invalid input... 终止执行"
- exit 1
- ;;
-esac
-
-#回到根目录
-cd -
-
-#去docker-compose目录
-cd docker-compose
-
-#启动网关服务
-docker-compose -f docker-compose.yml -f docker-compose.spring-gateway.yml up -d gateway-web
-
-#启动网关管理服务
-docker-compose -f docker-compose.yml -f docker-compose.spring-gateway.yml up -d gateway-admin
-
-#回到根目录
-cd -
-
-echo '==================6.构建镜像并启动组织(organization)相关服务=================='
-#构建镜像:组织服务
-cd ./sysadmin/organization
-mvn package && mvn docker:build
-
-#确认初始化授权/认证服务的DB:./sysadmin/db
-echo '你可以立即去部署组织服务的DB(脚本路径:./sysadmin/db),然后回来继续...'
-read -r -p "确认部署组织服务的DB部署好了吗? [Y/n] " orgDbConfirm
-case $orgDbConfirm in
- [yY][eE][sS]|[yY])
- echo "Yes 继续执行"
- ;;
- [nN][oO]|[nN])
- echo "No 终止执行"
- exit 1
- ;;
- *)
- echo "Invalid input... 终止执行"
- exit 1
- ;;
-esac
-
-#回到根目录
-cd -
-
-#去docker-compose目录
-cd docker-compose
-
-#启动组织服务
-docker-compose -f docker-compose.yml -f docker-compose.auth.yml up -d organization
-
-#回到根目录
-cd -
-
-echo '==================7.构建镜像并启动认证(auth)相关服务=================='
-#构建镜像:认证服务
-cd ./auth/authentication-server
-mvn package && mvn docker:build
-
-#回到根目录
-cd -
-
-#构建镜像:授权服务
-cd ./auth/authorization-server
-mvn package && mvn docker:build
-
-#确认初始化授权/认证服务的DB:./auth/db
-echo '你可以立即去部署授权/认证服务的DB(脚本路径:./auth/db),然后回来继续...'
-read -r -p "确认部署授权/认证服务的DB部署好了吗? [Y/n] " authDbConfirm
-case $authDbConfirm in
- [yY][eE][sS]|[yY])
- echo "Yes 继续执行"
- ;;
- [nN][oO]|[nN])
- echo "No 终止执行"
- exit 1
- ;;
- *)
- echo "Invalid input... 终止执行"
- exit 1
- ;;
-esac
-
-#回到根目录
-cd -
-
-#去docker-compose目录
-cd docker-compose
-
-#启动网关服务
-docker-compose -f docker-compose.yml -f docker-compose.auth.yml up -d authorization-server
-
-#启动网关管理服务
-docker-compose -f docker-compose.yml -f docker-compose.auth.yml up -d authentication-server
-
-#回到根目录
-cd -
-
-echo '==================8.构建镜像并启动监控(monitor)相关服务==============='
-#构建镜像:管理台服务
-cd ./monitor/admin
-mvn package && mvn docker:build
-
-#回到根目录
-cd -
-
-#去docker-compose目录
-cd docker-compose
-
-#启动网关服务
-docker-compose -f docker-compose.yml -f docker-compose.monitor.yml up -d monitor-admin
-
-#回到根目录
-cd -
diff --git a/monitor/admin/.gitignore b/monitor/admin/.gitignore
deleted file mode 100644
index 3a051984..00000000
--- a/monitor/admin/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-target/
-logs/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
diff --git a/monitor/admin/pom.xml b/monitor/admin/pom.xml
deleted file mode 100644
index edda4890..00000000
--- a/monitor/admin/pom.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- admin
- 0.0.1-SNAPSHOT
- jar
-
- admin
- Demo project for Spring Cloud Admin
-
-
- com.springboot.cloud
- monitor
- 0.0.1-SNAPSHOT
-
-
-
- 2.1.6
-
-
-
-
- de.codecentric
- spring-boot-admin-starter-server
- ${admin-server.version}
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
-
-
-
-
-
- com.spotify
- docker-maven-plugin
- 1.2.0
-
-
- cike/${project.artifactId}
- ${project.basedir}/src/main/docker
- true
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
-
-
diff --git a/monitor/admin/src/main/docker/Dockerfile b/monitor/admin/src/main/docker/Dockerfile
deleted file mode 100644
index b2ade522..00000000
--- a/monitor/admin/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:alpine
-VOLUME /tmp
-ADD admin-0.0.1-SNAPSHOT.jar app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java b/monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java
deleted file mode 100644
index 75958a3b..00000000
--- a/monitor/admin/src/main/java/com/springboot/admin/AdminApplication.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.springboot.admin;
-
-import de.codecentric.boot.admin.server.config.EnableAdminServer;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableAdminServer
-public class AdminApplication {
- public static void main(String[] args) {
- SpringApplication.run(AdminApplication.class, args);
- }
-}
diff --git a/monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java b/monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java
deleted file mode 100644
index de63a79e..00000000
--- a/monitor/admin/src/main/java/com/springboot/admin/SecurityConfig.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.springboot.admin;
-
-import de.codecentric.boot.admin.server.config.AdminServerProperties;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
-
-@Configuration
-public class SecurityConfig extends WebSecurityConfigurerAdapter {
- private final String adminContextPath;
-
- public SecurityConfig(AdminServerProperties adminServerProperties) {
- this.adminContextPath = adminServerProperties.getContextPath();
- }
-
- @Override
- protected void configure(HttpSecurity http) throws Exception {
- // @formatter:off
- SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
- successHandler.setTargetUrlParameter("redirectTo");
-
- http.authorizeRequests()
- .antMatchers(adminContextPath + "/assets/**").permitAll()
- .antMatchers(adminContextPath + "/actuator/**").permitAll()
- .antMatchers(adminContextPath + "/login").permitAll()
- .anyRequest().authenticated()
- .and()
- .formLogin().loginPage(adminContextPath + "/login")
- .successHandler(successHandler).and()
- .logout().logoutUrl(adminContextPath + "/logout")
- .and()
- .httpBasic().and()
- .csrf().disable();
- // @formatter:on
- }
-}
\ No newline at end of file
diff --git a/monitor/admin/src/main/resources/application.yml b/monitor/admin/src/main/resources/application.yml
deleted file mode 100644
index 7c75b218..00000000
--- a/monitor/admin/src/main/resources/application.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:localhost}
- port: ${RABBIT_MQ_PORT:5672}
- username: ${RABBIT_MQ_USERNAME:guest}
- password: ${RABBIT_MQ_PASSWORD:guest}
- redis:
- host: ${REDIS_HOST:localhost}
- port: ${REDIS_PORT:6379}
- ##password: ${REDIS_PASSWORD:}
- #spring boot admin的登陆账号和密码配置
- security:
- user:
- name: admin
- password: 123456
- #通过rabbit MQ将日志发给zipkin
- zipkin:
- enabled: true
- sender:
- type: rabbit
- sleuth:
- sampler:
- probability: 1.0
-
-management:
- endpoints:
- web:
- exposure:
- include: '*'
-#日志相关配置
-logging:
- level:
- org.springframework.security: DEBUG
- path: logs/
- file:
- max-size: 1GB
-
-
diff --git a/monitor/admin/src/main/resources/bootstrap.yml b/monitor/admin/src/main/resources/bootstrap.yml
deleted file mode 100644
index f08b33cd..00000000
--- a/monitor/admin/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-server:
- port: ${SERVER_PORT:8022}
-spring:
- application:
- name: admin
- cloud:
- nacos:
- discovery:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- config:
- server-addr: ${REGISTER_HOST:localhost}:${REGISTER_PORT:8848}
- file-extension: yml
diff --git a/monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java b/monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java
deleted file mode 100644
index d6647d03..00000000
--- a/monitor/admin/src/test/java/com/springboot/admin/ConsumerApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.springboot.admin;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class ConsumerApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/monitor/pom.xml b/monitor/pom.xml
deleted file mode 100644
index dcf63450..00000000
--- a/monitor/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- 4.0.0
-
- com.springboot.cloud
- monitor
- 0.0.1-SNAPSHOT
- pom
-
- monitor
- Demo Monitor project for Spring Boot
-
-
- com.springboot.cloud
- cloud
- 0.0.1-SNAPSHOT
-
-
-
- admin
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
diff --git a/monitor/readme.md b/monitor/readme.md
deleted file mode 100644
index a641996a..00000000
--- a/monitor/readme.md
+++ /dev/null
@@ -1,154 +0,0 @@
-
-快速构建spring-cloud + sleuth + rabbit + zipkin + es + kibana + grafana日志跟踪平台
--------------
-
-## 简介
-
- ### Spring-Cloud-Sleuth
-
- Spring-Cloud-Sleuth是Spring Cloud的组成部分之一,为SpringCloud应用实现了一种分布式追踪解决方案,其兼容了Zipkin, HTrace和log-based追踪
-
- * 术语(Terminology)
-
- **Span:** 基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,span通过一个64位ID唯一标识,trace以另一个64位ID表示,span还有其他数据信息,比如摘要、时间戳事件、关键值注释(tags)、span的ID、以及进度ID(通常是IP地址)
-
- span在不断的启动和停止,同时记录了时间信息,当你创建了一个span,你必须在未来的某个时刻停止它。
-
- **Trace:** 一系列spans组成的一个树状结构,例如,如果你正在跑一个分布式大数据工程,你可能需要创建一个trace。
-
- **Annotation:** 用来及时记录一个事件的存在,一些核心annotations用来定义一个请求的开始和结束
-
- cs - Client Sent -客户端发起一个请求,这个annotion描述了这个span的开始
- sr - Server Received -服务端获得请求并准备开始处理它,如果将其sr减去cs时间戳便可得到网络延迟
- ss - Server Sent -注解表明请求处理的完成(当请求返回客户端),如果ss减去sr时间戳便可得到服务端需要的处理请求时间
- cr - Client Received -表明span的结束,客户端成功接收到服务端的回复,如果cr减去cs时间戳便可得到客户端从服务端获取回复的所有所需时间
-
- 将Span和Trace在一个系统中使用Zipkin注解的过程图形化:
-
- 
-
- ### Rabbitmq: 消息队列,主要用于传输日志
-
-
- ### Zipkin: 服务调用链路追踪系统,聚合各业务系统调用延迟数据,达到链路调用监控与跟踪。
-
- 服务调用链路
- 
-
- 服务调用链路详情
- 
-
- 服务间的调用关系
- 
-
- ### ES + Kibana提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。
-
- 
-
- ### Grafana可视化图表监控工具
-
- 
-
-
-## zipkin-server搭建与使用
-
-docker-compose
-
-```yaml
-version: '3'
-services:
- rabbitmq:
- image: rabbitmq:alpine
- container_name: sc-rabbitmq
- restart: always
- volumes:
- - ./data/rabbitmq:/var/lib/rabbitmq
- networks:
- - sc-net
- ports:
- - 5672:5672
-
- zipkin-server:
- image: openzipkin/zipkin
- container_name: sc-zipkin-server
- restart: always
- volumes:
- - ./data/logs/zipkin-server:/logs
- networks:
- - sc-net
- ports:
- - 9411:9411
- environment:
- - RABBIT_ADDRESSES=rabbitmq:5672
- - RABBIT_MQ_PORT=5672
- - RABBIT_PASSWORD=guest
- - RABBIT_USER=guest
- depends_on:
- - rabbitmq
-
-```
-## 搭建ES + Grafana
-```yaml
-version: '3'
-services:
- elasticsearch:
- image: elasticsearch:alpine
- container_name: sc-elasticsearch
- restart: always
- volumes:
- - ./data/elasticsearch/logs:/var/logs/elasticsearch
- networks:
- - sc-net
- ports:
- - 9200:9200
-
- kibana:
- image: kibana
- container_name: sc-kibana
- restart: always
- volumes:
- - ./data/kibana/logs:/var/logs/kibana
- networks:
- - sc-net
- ports:
- - 5601:5601
- environment:
- - ELASTICSEARCH_URL=http://elasticsearch:9200
- depends_on:
- - elasticsearch
-
- grafana:
- image: grafana/grafana
- container_name: sc-grafana
- restart: always
- volumes:
- - ./data/grafana/logs:/var/logs/grafana
- networks:
- - sc-net
- ports:
- - 3000:3000
-```
-
-## 测试
-
-### 启动服务
-
-将以上docker-compose脚本保存为ocker-compose.yml,并在当时目录下执行`docker-compose up`
-
-### spring-cloud集成
-
-请参考:https://github.com/zhoutaoo/SpringCloud例子
-
-应用集成开发好后,请求应用的接口
-
-### 查看日志
-
-zipkin访问地址:http://localhost:9411,可以看到请求的耗时与路径
-
-kibana访问地址:http://localhost:5601,可以看到请求打印的日志
-
-grafana访问地址:http://localhost:3000,可以新增es数据源,出可视化的图表和监控
-
-
-
-
diff --git a/opensabre-framework b/opensabre-framework
new file mode 160000
index 00000000..27dd9dd5
--- /dev/null
+++ b/opensabre-framework
@@ -0,0 +1 @@
+Subproject commit 27dd9dd57088f2b2cabaa5a6dbb1398013100180
diff --git a/pom.xml b/pom.xml
index fee24396..9900769a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.springboot.cloud
- cloud
+ springCloud
0.0.1-SNAPSHOT
pom
@@ -20,8 +20,52 @@
monitor
sysadmin
demos
+ facade
+
+
+
+ local
+
+ true
+
+
+ local
+
+
+
+
+ test
+
+ false
+
+
+ test
+
+
+
+
+ dev
+
+ false
+
+
+ dev
+
+
+
+
+ pro
+
+ false
+
+
+ pro
+
+
+
+
diff --git a/readme.md b/readme.md
index 80729f94..b4238277 100644
--- a/readme.md
+++ b/readme.md
@@ -1,121 +1,111 @@
[](https://travis-ci.org/zhoutaoo/SpringCloud)
[](https://opensource.org/licenses/Apache-2.0)
-[](https://codecov.io/gh/zhoutaoo/SpringCloud)
-## 快速开始
-### 先决条件
+## 前言
-首先本机先要安装以下环境,建议先学习了解springboot和springcloud基础知识。
+**根据前期的使用和反馈,目前将脚手架整体进行了重构,发布了新的框架 Opensabre,请使用新版。**
-- [git](https://git-scm.com/)
-- [java8](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
-- [maven](http://maven.apache.org/)
+💪Opensabre是基于SpringCloud2023的微服务开发平台,整合了Spring Security、Springcloud Alibaba等组件。
-### 开发环境搭建
+包含了基础的RBAC权限管理、授权认证、网关管理、服务治理、审计日志等系统管理基础应用。
-linux和mac下可在项目根目录下执行 `./install.sh` 快速搭建开发环境。如要了解具体的步骤,请看如下文档。
+定义了相关开发规范、风格并落地在服务框架层,开箱即用,支持Docker、Kubenetes的部署。
-**具体步骤如下:**
+让项目开发人员快速进入业务开发,而不需过多时间花费在基础架构搭建和编码风格规范上。
-1. 克隆代码库: `git clone https://github.com/zhoutaoo/SpringCloud.git`
+目标是建立一套金融级、高安全性的微服务解决方案。
-2. 安装公共库到本地仓库:
+## 项目介绍
-`cd common && mvn install`
+框架源码: `https://github.com/opensabre/opensabre-framework`
-`cd auth/authentication-client && mvn install`
+在线文档: `https://opensabre.github.io/docs`
-3. 生成ide配置: `mvn idea:idea`或`mvn eclipse:eclipse` 并导入对应的ide进行开发,IDE安装lombok插件(很重要,否则IDE会显示编译报错)
+## 功能特点
-### 编译 & 启动
+```
+1. 统一Restful的响应报文,controll返回原始类型即可,无需手动包装,简化代码,可读性更好。
-* 1.启动基础服务:进入docker-compose目录,执行`docker-compose -f docker-compose.yml up` 或单个启动`docker-compose up 服务名`, 服务名如下
+2. 统一异常处理,封装了基本的异常的响应,如参数检验、文件上传等。简化代码,更方便扩展。
-在启动应用之前,需要先启动数据库、缓存、MQ等中间件,可根据自己需要启动的应用选择启动某些基础组件,一般来说启动mysql、redis、rabbitmq即可,其它组件若有需要,根据如下命令启动即可。
+3. 默认集成knife4j和Swagger 3.0 API文档,方便接口文档的传递、协作与调试。
-该步骤使用了docker快速搭建相应的基础环境,需要你对docker、docker-compose有一定了解和使用经验。也可以不使用docker,自行搭建以下服务即可。
+4. 标准化WEB对象传递/转换/使用,方便统一开发风格,简化操作。
-| 服务 | 服务名 | 端口 | 备注 |
-|----------------|-----------------|-----------|-------------------------------------------------|
-| 数据库 | mysql | 3306 | 目前各应用共用1个实例,各应用可建不同的database |
-| KV缓存 | redis | 6379 | 目前共用,原则上各应用单独实例 |
-| 消息中间件 | rabbitmq | 5672 | 共用 |
-| 注册与配置中心 | nacos | 8848 | [启动和使用文档](./docs/register.md) |
-| 日志收集中间件 | zipkin-server | 9411 | 共用 |
-| 搜索引擎中间件 | elasticsearch | 9200 | 共用 |
-| 日志分析工具 | kibana | 5601 | 共用 |
-| 数据可视化工具 | grafana | 3000 | 共用 |
+5. 框架/环境等元数据自动收集注册至properties和Nacos,方便系统运行时作为扩展判断,信息处理。
-* 2.创建数据库及表
+6. 系统启动时自动收集所有Restful url注册到权限资源,方便进行集中权限管理和授权使用。
-只有部分应用有数据库脚本,若启动的应用有数据库的依赖,请初使化表结构和数据后再启动应用。
+7. 多机房/双活路由负载扩展支持,自定义路由和负载规则,更灵活、可控。
-docker方式脚本初使化:进入docker-compose目录,执行命令 `docker-compose up mysql-init`
+8. 默认引入spring validation,并扩展枚举、手机号等常用校验注解。
-**子项目脚本**
+9. 默认引入日志trace、actuator等组件,统一日志打印格式。
-路径一般为:子项目/db
+10. 整体系统化为三层,framework框架、framework组件、基础应用,层次更清楚,结构更合理。
-如:`auth/db` 下的脚本,请先执行ddl建立表结构后再执行dml数据初使化
+11. 配置中心,划分框架全局配置与应用配置(熔断降级、网关路由),配置项支持加密处理。
-**应用脚本**
+12. 支持日志敏感数据脱敏配置,响应报文敏感数据注解胶敏。
+```
+
+## 快速开始
-路径一般为:子项目/应用名/src/main/db
+### 先决条件
-如:demos/producer/src/main/db 下的脚本
+首先本机先要安装以下环境,建议先学习了解springboot和springcloud基础知识。
-* 3.启动应用
+依赖说明: `https://opensabre.github.io/docs/#/framework/introduction/dependencies`
-根据自己需要,启动相应服务进行测试,cd 进入相关应用目录,执行命令: `mvn spring-boot:run`
+工程介绍:`https://opensabre.github.io/docs/#/framework/introduction/PROJECT`
-以下应用都依赖于rabbitmq、nacos,启动服务前请先启动mq和注册中心
+### 快速入门
-| 服务分类 | 服务名 | 依赖基础组件 | 简介 | 应用地址 | 文档 |
-|----------|---------------------------|-------------------------|-------------|-------------------------|-------------------------|
-| center | bus-server | | 消息中心 | http://localhost:8071 | [消息中心文档](./center/bus) |
-| sysadmin| organization | mysql、redis | 用户组织应用 | http://localhost:8010 | 待完善 |
-| auth | authorization-server | mysql、organization | 授权服务 | http://localhost:8000 | [权限服务简介](./auth) 、[授权server文档](./auth/authorization-server) |
-| auth | authentication-server | mysql、organization | 认证服务 | http://localhost:8001 | [认证server文档](./auth/authentication-server) |
-| auth | authentication-client | 无 | 认证客户端 | jar包引入 | |
-| gateway | gateway-web | redis | WEB网关 | http://localhost:8443 | [WEB网关简介](./gateway) [WEB网关文档](./gateway/gateway-web) |
-| gateway | gateway-admin | mysql、redis | 网关管理 | http://localhost:8445 | [网关管理后台文档](./gateway/gateway-admin) |
-| monitor | admin | | 总体监控 | http://localhost:8022 | |
+本工程是一个聚合工程,相关模块引用了 `https://github.com/opensabre` 的相关模块
-* 4.案例示意图
+1. 学习源码请克隆代码库: `git clone https://github.com/zhoutaoo/SpringCloud.git --recursive`
-以下是一个用户访问的的示意图,用户请求通过gateway-web应用网关访问后端应用,通过authorization-server应用登陆授权换取token,请求通过authentication-server应用进行权限签别后转发到"您的业务应用"中
+2. 快速使用框架开发请参考:`https://opensabre.github.io/docs/#/framework/manual/QUICKSTART`
-authorization-server为授权应用,启动前请初使化好数据库,[授权Server文档](./auth/authorization-server)。
+### 基础应用使用
-authentication-server为签权应用,若有新增接口,请初使化相关权限数据到resource表中。
+ **基础应用脚本**
-gateway-admin可动态调整gateway-web的路由策略,测试前请先配置网关的转发策略,[路由策略配置](https://github.com/zhoutaoo/SpringCloud/tree/master/gateway/gateway-admin#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)。
+* 1.创建数据库及表
-[示意图](https://www.processon.com/view/link/5cc05ff9e4b059e20a06e3c4)
+路径一般为:应用/src/main/resources/db
-* 6.前端项目
+如:`base-origanization/src/main/resources/db` 下的脚本,请先执行db文件创建库,再执行ddl建立表结构后再执行dml数据初使化
-确确保gateway-admin、gateway-web、organization、authorization-server、authentication-server服务启动,然后启动
+* 2.启动应用
-[前端项目](https://github.com/zhoutaoo/SpringCloud-Admin)(该项目目前还在开发中)
+根据自己需要,启动相应服务进行测试,cd 进入相关应用目录,执行命令: `mvn spring-boot:run` 或者通过ide提供的运行功能。
-大家启动如有问题,可以先到这里看看,也可以加入交流群
+* 3.测试验证
-[常见问题](https://github.com/zhoutaoo/SpringCloud/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
+可通过命令行或postman类的工具进行请求,应用端口默认8080
+```shell
+root@xxxxx # curl http://localhost:8080/test/echo?name=zhangsan
-### 测试
+{
+ "code":"000000",
+ "mesg":"处理成功",
+ "time":"2022-11-22T14:46:58.643Z",
+ "data":"Hello:zhangsan"
+}
-运行 `mvn test` 启动测试.
+```
+默认文档地址如下:
-## 架构与开发
+swagger文档地址:http://localhost:8080/swagger-ui/index.html
-[架构](https://www.processon.com/view/link/597ffa52e4b06a973c4d86ba)
+knife4j文档地址:http://localhost:8080/doc.html
-## 开发指南
+## 架构与开发
-[开发指南](docs/development.md)
+[系统架构](https://opensabre.github.io/docs/#/framework/architecture/README)
## 功能与特性
@@ -138,59 +128,21 @@ gateway-admin可动态调整gateway-web的路由策略,测试前请先配置
### 基础服务
-| 服务 | 使用技术 | 进度 | 备注 |
-|----------|-------------------------|---------------|-----------|
-| 注册中心 | Nacos | ✅ | |
-| 配置中心 | Nacos | ✅ | |
-| 消息总线 | SpringCloud Bus+Rabbitmq| ✅ | |
-| 灰度分流 | OpenResty + lua | 🏗 | |
-| 动态网关 | SpringCloud Gateway | ✅ | 多种维度的流量控制(服务、IP、用户等),后端可配置化🏗 |
-| 授权认证 | Spring Security OAuth2 | ✅ | Jwt模式 |
-| 服务容错 | SpringCloud Sentinel | ✅ | |
-| 服务调用 | SpringCloud OpenFeign | ✅ | |
-| 对象存储 | FastDFS/Minio | 🏗 | |
-| 任务调度 | Elastic-Job | 🏗 | |
-| 分库分表 | Mycat | 🏗 | |
-| 数据权限 | | 🏗 | 使用mybatis对原查询做增强,业务代码不用控制,即可实现。 |
-
-### 平台功能
-
-| 服务 | 使用技术 | 进度 | 备注 |
-|----------|-------------|---------------|-----------|
-| 用户管理 | 自开发 | ✅ | 用户是系统操作者,该功能主要完成系统用户配置。 |
-| 角色管理 | 自开发 | ✅ | 角色菜单权限分配、设置角色按机构进行数据范围权限划分。 |
-| 菜单管理 | 自开发 | 🏗 | 配置系统菜单,操作权限,按钮权限标识等。 |
-| 机构管理 | 自开发 | 🏗 | 配置系统组织机构,树结构展现,可随意调整上下级。 |
-| 网关动态路由 | 自开发 | 🏗 | 网关动态路由管理 |
-
-### 开发运维
-
-| 服务 | 使用技术 | 进度 | 备注 |
-|----------|-------------------------|---------------|-----------|
-| 代码生成 | | 🏗 | 前后端代码的生成,支持Vue |
-| 测试管理 | | 🏗 | |
-| 文档管理 | Swagger2 | ✅ | |
-| 服务监控 | Spring Boot Admin | ✅ | |
-| 链路追踪 | SkyWalking | ✅ | |
-| 操作审计 | | 🏗 | 系统关键操作日志记录和查询 |
-| 日志管理 | ES + Kibana、Zipkin | ✅ | |
-| 监控告警 | Grafana | ✅ | |
+| 服务 | 使用技术 | 进度 | 备注 |
+|------|--------------------------|----|---------------------------------|
+| 注册中心 | Nacos | ✅ | |
+| 配置中心 | Nacos | ✅ | |
+| 消息总线 | SpringCloud Bus+Rabbitmq | ✅ | |
+| 动态网关 | SpringCloud Gateway | ✅ | 多种维度的流量控制(服务、IP、用户等),后端可配置化🏗 |
+| 授权认证 | Spring Security OAuth2 | ✅ | Jwt模式 |
+| 服务容错 | SpringCloud Sentinel | ✅ | |
+| 服务调用 | SpringCloud OpenFeign | ✅ | |
+| 对象存储 | Minio | 🏗 | |
+| 数据权限 | | 🏗 | 使用mybatis对原查询做增强,业务代码不用控制,即可实现。 |
## 更新日志
-**2019年10月18日:**
-
-1.使用nacos替代eureka为服务的注册中心
-
-2.使用nacos替代apollo为服务的配置中心
-
-3.引入使用sentinel替换掉hystrix,引入sentinel-dashboard
-
-4.使用jetcache作两级缓存,优化缓存性能
-
-5.网关启动时加载数据库中的路由到redis缓存
-
-6.其它已知bug修复
+[版本说明](https://opensabre.github.io/docs/#/framework/VERSONS)
## 联系交流
@@ -202,25 +154,15 @@ gateway-admin可动态调整gateway-web的路由策略,测试前请先配置
如果你觉的有帮助到您,可以请作者喝饮料,这样更有动力,谢谢。
-
-
+
+ zfb
-
+ wx
### 学习交流
-EMail:zhoutaoo@foxmail.com
-
-群1、2、3、4、5、6、7、8、9已满,请加群10,加群[请戳这里](https://github.com/zhoutaoo/SpringCloud/wiki)
-
- 此些群仅为技术交流群,请大家不要讨论政治、发广告等与技术无关的东西。大家如若有问题可以在群里直接发问,我会抽空答复。
-
-请大家问问题时尽量描述清楚背景与问题关键信息,描述的越清楚越容易得到答案。也更容易判断问题可能点,节省判断的时间,而不用来回问答。
-
-同时也鼓励群友们积极回复已知的问题,大家相互帮助共同成长。如有bug或新需求也可以直接提交issue到github,我会酌情处理。
-
-如果你发现你的问题很久都没有人答复,那很有可能就是问题描述的不够清楚,别人无法回复。
+Email:zhoutaoo@foxmail.com
**问问题的三要素**
diff --git a/sysadmin/db/db.sql b/sysadmin/db/db.sql
deleted file mode 100644
index 3d45d828..00000000
--- a/sysadmin/db/db.sql
+++ /dev/null
@@ -1,302 +0,0 @@
-SET NAMES utf8;
-
-DROP DATABASE IF EXISTS sc_admin;
-CREATE DATABASE sc_admin DEFAULT CHARSET utf8mb4;
-USE sc_admin;
-
--- 用户组表
-DROP TABLE IF EXISTS groups;
-CREATE TABLE groups
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- parent_id VARCHAR(20) NOT NULL COMMENT '用户组父id',
- name VARCHAR(200) COMMENT '用户组名称',
- description VARCHAR(500) COMMENT '描述',
- deleted VARCHAR(1) NOT NULL DEFAULT 'N' COMMENT '是否已删除Y:已删除,N:未删除',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '用户组表';
-
--- 岗位表
-DROP TABLE IF EXISTS position;
-CREATE TABLE position
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- name VARCHAR(200) COMMENT '岗位名称',
- description VARCHAR(500) COMMENT '描述',
- deleted VARCHAR(1) NOT NULL DEFAULT 'N' COMMENT '是否已删除Y:已删除,N:未删除',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '岗位表';
-
--- 菜单表
-DROP TABLE IF EXISTS menu;
-CREATE TABLE menu
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- parent_id VARCHAR(20) NOT NULL COMMENT '父菜单id',
- type VARCHAR(100) COMMENT '菜单类型',
- href VARCHAR(200) COMMENT '菜单路径',
- icon VARCHAR(200) COMMENT '菜单图标',
- name VARCHAR(200) COMMENT '菜单名称',
- description VARCHAR(500) COMMENT '描述',
- order_num INTEGER COMMENT '创建时间',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '菜单表';
-
-
--- 用户和组关系表
-DROP TABLE IF EXISTS user_group_relation;
-CREATE TABLE user_group_relation
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- user_id VARCHAR(20) NOT NULL COMMENT '用户id',
- group_id VARCHAR(20) NOT NULL COMMENT '用户组id',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '用户和组关系表';
-
-
--- 用户和岗位系表
-DROP TABLE IF EXISTS user_position_relation;
-CREATE TABLE user_position_relation
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- user_id VARCHAR(20) NOT NULL COMMENT '用户id',
- position_id VARCHAR(20) NOT NULL COMMENT '角色id',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '用户和岗位关系表';
-
-
--- 角色和菜单关系表
-DROP TABLE IF EXISTS role_menu_relation;
-CREATE TABLE role_menu_relation
-(
- id VARCHAR(20) PRIMARY KEY COMMENT 'id',
- menu_id VARCHAR(20) NOT NULL COMMENT '菜单id',
- role_id VARCHAR(20) NOT NULL COMMENT '角色id',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '角色和菜单关系表';
-
--- 用户表
-DROP TABLE IF EXISTS users;
-CREATE TABLE users
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '用户id',
- username VARCHAR(100) NOT NULL COMMENT '用户名',
- password VARCHAR(100) NOT NULL COMMENT '用户密码密文',
- name VARCHAR(200) COMMENT '用户姓名',
- mobile VARCHAR(20) COMMENT '用户手机',
- description VARCHAR(500) COMMENT '简介',
- deleted VARCHAR(1) NOT NULL DEFAULT 'N' COMMENT '是否已删除Y:已删除,N:未删除',
- enabled BOOLEAN COMMENT '是否有效用户',
- account_non_expired BOOLEAN COMMENT '账号是否未过期',
- credentials_non_expired BOOLEAN COMMENT '密码是否未过期',
- account_non_locked BOOLEAN COMMENT '是否未锁定',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '用户表';
-CREATE UNIQUE INDEX ux_users_username
- ON users (username);
-CREATE UNIQUE INDEX ux_users_mobile
- ON users (mobile);
-
--- 角色表
-DROP TABLE IF EXISTS roles;
-CREATE TABLE roles
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '角色id',
- code VARCHAR(100) NOT NULL COMMENT '角色code',
- name VARCHAR(200) COMMENT '角色名称',
- description VARCHAR(500) COMMENT '简介',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '角色表';
-
--- 资源表
-DROP TABLE IF EXISTS resource;
-CREATE TABLE resource
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '资源id',
- code VARCHAR(100) NOT NULL COMMENT '资源code',
- type VARCHAR(100) NOT NULL COMMENT '资源类型',
- name VARCHAR(200) NOT NULL COMMENT '资源名称',
- url VARCHAR(200) NOT NULL COMMENT '资源url',
- method VARCHAR(20) NOT NULL COMMENT '资源方法',
- description VARCHAR(500) COMMENT '简介',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '资源表';
-CREATE UNIQUE INDEX ux_resource_code
- ON resource (code);
-
--- 用户和角色关系表
-DROP TABLE IF EXISTS user_role_relation;
-CREATE TABLE user_role_relation
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '关系id',
- user_id VARCHAR(20) NOT NULL COMMENT '用户id',
- role_id VARCHAR(20) NOT NULL COMMENT '角色id',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '用户和角色关系表';
-
--- 角色和资源关系表
-DROP TABLE IF EXISTS role_resource_relation;
-CREATE TABLE role_resource_relation
-(
- id VARCHAR(20) PRIMARY KEY COMMENT '关系id',
- resource_id VARCHAR(20) NOT NULL COMMENT '角色id',
- role_id VARCHAR(20) NOT NULL COMMENT '资源id',
- created_time DATETIME NOT NULL DEFAULT now() COMMENT '创建时间',
- updated_time DATETIME NOT NULL DEFAULT now() COMMENT '更新时间',
- created_by VARCHAR(100) NOT NULL COMMENT '创建人',
- updated_by VARCHAR(100) NOT NULL COMMENT '更新人'
-) COMMENT '角色和资源关系表';
-
--- DML准备初始化数据
-
--- 用户
-INSERT INTO users (id, username, password, deleted, enabled, account_non_expired, credentials_non_expired, account_non_locked, name, mobile, created_time, updated_time, created_by, updated_by)
-VALUES
-(101, 'admin', '2ドルa10ドル$vYA9wKn/hVGOtwQw2eHiceeIGNBdfLYpDmbzHgBSVmOfHXPH4iYdS', 'N', true, true, true, true,
- '超级管理员', '', now(), now(), 'system', 'system'),
-(102, 'zhoutaoo', '2ドルa10ドル$vYA9wKn/hVGOtwQw2eHiceeIGNBdfLYpDmbzHgBSVmOfHXPH4iYdS', 'N', true, true, true, true,
- '周涛', 15619841000, now(), now(), 'system', 'system');
--- 角色
-INSERT INTO roles (id, code, name, description, created_time, updated_time, created_by, updated_by)
-VALUES (101, 'ADMIN', '超级管理员', '公司IT总负责人', now(), now(), 'system', 'system'),
- (102, 'FIN', '财务', '财务', now(), now(), 'system', 'system'),
- (103, 'IT', 'IT', 'IT角色', now(), now(), 'system', 'system');
--- 资源
-INSERT INTO resource (id, name, code, type, url, method, description, created_time, updated_time, created_by, updated_by)
-VALUES (101, '新增用户', 'user_manager:btn_add', 'user', '/user', 'POST', '新增用户功能', now(), now(), 'system', 'system'),
- (102, '编辑用户', 'user_manager:btn_edit', 'user', '/user/{id}', 'PUT', '编辑用户功能', now(), now(), 'system', 'system'),
- (103, '删除用户', 'user_manager:btn_del', 'user', '/user/{id}', 'DELETE', '根据用户id删除用户', now(), now(), 'system', 'system'),
- (104, '查看用户', 'user_manager:view', 'user', '/user/{id}', 'GET', '根据用户id获取用户', now(), now(), 'system', 'system'),
- (105, '搜索用户', 'user_manager:query', 'user', '/user/conditions', 'POST', '根据条件查询用户', now(), now(), 'system', 'system'),
- (106, '获取用户', 'user_manager:get', 'user', '/user', 'GET', '根据唯一标识获取用户', now(), now(), 'system', 'system'),
- (201, '新增角色', 'role_manager:btn_add', 'role', '/role', 'POST', '新增角色功能', now(), now(), 'system', 'system'),
- (202, '编辑角色', 'role_manager:btn_edit', 'role', '/role/{id}', 'PUT', '编辑角色功能', now(), now(), 'system', 'system'),
- (203, '删除角色', 'role_manager:btn_del', 'role', '/role/{id}', 'DELETE', '根据id删除角色', now(), now(), 'system', 'system'),
- (204, '查看角色', 'role_manager:view', 'role', '/role/{id}', 'GET', '根据id获取角色', now(), now(), 'system', 'system'),
- (205, '根据用户id查询角色', 'role_manager:user', 'role', '/role/user/{userId}', 'GET', '根据用户id获取用户所拥有的角色集', now(), now(), 'system', 'system'),
- (206, '获取所有角色', 'role_manager:all', 'role', '/role/all', 'GET', '获取所有角色', now(), now(), 'system', 'system'),
- (207, '搜索角色', 'role_manager:query', 'role', '/role/conditions', 'POST', '根据条件查询角色', now(), now(), 'system', 'system'),
- (301, '根据父id查询组', 'group_manager:parent', 'group', '/group/parent/{id}', 'GET', '根据父id查询用户组', now(), now(), 'system', 'system'),
- (302, '查看用户组', 'group_manager:get', 'group', '/group/{id}', 'GET', '根据id查询用户组', now(), now(), 'system', 'system'),
- (303, '搜索用户组', 'group_manager:query', 'group', '/group/conditions', 'POST', '根据条件查询用户组信息', now(), now(), 'system', 'system'),
- (304, '删除用户组', 'group_manager:del', 'group', '/group/{id}', 'DELETE', '根据用户id删除用户组', now(), now(), 'system', 'system'),
- (305, '编辑用户组', 'group_manager:edit', 'group', '/group/{id}', 'PUT', '修改用户组', now(), now(), 'system', 'system'),
- (306, '新增用户组', 'group_manager:add', 'group', '/group', 'POST', '新增用户组', now(), now(), 'system', 'system'),
- (307, '新增网关路由', 'gateway_manager:add', 'gateway', '/gateway/routes', 'POST', '新增网关路由', now(), now(), 'system', 'system'),
- (308, '修改网关路由', 'gateway_manager:edit', 'gateway', '/gateway/routes/{id}', 'PUT', '修改网关路由', now(), now(), 'system', 'system'),
- (309, '删除网关路由', 'gateway_manager:adel', 'gateway', '/gateway/routes/{id}', 'DELETE', '删除网关路由', now(), now(), 'system', 'system'),
- (310, '查看网关路由', 'gateway_manager:view', 'gateway', '/gateway/routes/{id}', 'GET', '查看网关路由', now(), now(), 'system', 'system'),
- (311, '搜索网关路由', 'gateway_manager:query', 'gateway', '/gateway/routes/conditions', 'POST', '搜索网关路由', now(), now(), 'system', 'system'),
- (312, '全局加载路由', 'gateway_manager:overload', 'gateway', '/gateway/routes/overload', 'POST', '全局加载路由', now(), now(), 'system', 'system'),
- (313, '新增网关路由', 'resource_manager:add', 'resource', '/resource', 'POST', '新增资源路由', now(), now(), 'system', 'system'),
- (314, '修改网关路由', 'resource_manager:edit', 'resource', '/resource/{id}', 'PUT', '修改资源', now(), now(), 'system', 'system'),
- (315, '删除网关路由', 'resource_manager:adel', 'resource', '/resource/{id}', 'DELETE', '删除资源', now(), now(), 'system', 'system'),
- (316, '查看网关路由', 'resource_manager:view', 'resource', '/resource/{id}', 'GET', '查看资源', now(), now(), 'system', 'system'),
- (317, '搜索网关路由', 'resource_manager:query', 'resource', '/resource/conditions', 'POST', '搜索资源', now(), now(), 'system', 'system'),
- (318, '全局加载路由', 'resource_manager:all', 'resource', '/resource/all', 'GET', '查询全部资源', now(), now(), 'system', 'system');
-
--- 用户关系授权
-INSERT INTO user_role_relation (id, user_id, role_id, created_time, updated_time, created_by, updated_by)
-VALUES (101, 101, 101, now(), now(), 'system', 'system'),
- (102, 102, 101, now(), now(), 'system', 'system'),
- (103, 102, 103, now(), now(), 'system', 'system');
--- 角色与资源关系表
-INSERT INTO role_resource_relation (id, role_id, resource_id, created_time, updated_time, created_by, updated_by)
-VALUES (101, 101, 101, now(), now(), 'system', 'system'),
- (102, 101, 102, now(), now(), 'system', 'system'),
- (103, 101, 103, now(), now(), 'system', 'system'),
- (104, 101, 104, now(), now(), 'system', 'system'),
- (105, 101, 105, now(), now(), 'system', 'system'),
- (106, 101, 106, now(), now(), 'system', 'system'),
- (201, 101, 201, now(), now(), 'system', 'system'),
- (202, 101, 202, now(), now(), 'system', 'system'),
- (203, 101, 203, now(), now(), 'system', 'system'),
- (204, 101, 204, now(), now(), 'system', 'system'),
- (205, 101, 205, now(), now(), 'system', 'system'),
- (206, 101, 206, now(), now(), 'system', 'system'),
- (207, 101, 207, now(), now(), 'system', 'system'),
- (208, 101, 301, now(), now(), 'system', 'system'),
- (209, 101, 302, now(), now(), 'system', 'system'),
- (210, 101, 303, now(), now(), 'system', 'system'),
- (211, 101, 304, now(), now(), 'system', 'system'),
- (212, 101, 305, now(), now(), 'system', 'system'),
- (213, 101, 306, now(), now(), 'system', 'system'),
- (401, 101, 307, now(), now(), 'system', 'system'),
- (402, 101, 308, now(), now(), 'system', 'system'),
- (403, 101, 309, now(), now(), 'system', 'system'),
- (404, 101, 310, now(), now(), 'system', 'system'),
- (405, 101, 311, now(), now(), 'system', 'system'),
- (406, 101, 312, now(), now(), 'system', 'system'),
- (501, 101, 313, now(), now(), 'system', 'system'),
- (502, 101, 314, now(), now(), 'system', 'system'),
- (503, 101, 315, now(), now(), 'system', 'system'),
- (504, 101, 316, now(), now(), 'system', 'system'),
- (505, 101, 317, now(), now(), 'system', 'system'),
- (506, 101, 318, now(), now(), 'system', 'system');
-
--- 岗位
-INSERT INTO position (id, name, description, created_time, updated_time, created_by, updated_by)
-VALUES (101, '首席执行官', '公司CEO,负责公司整体运转', now(), now(), 'system', 'system'),
- (102, '首席运营官', '公司COO,负责公司整体运营', now(), now(), 'system', 'system'),
- (103, '首席技术官', '公司CTO,负责公司整体运营', now(), now(), 'system', 'system');
--- 用户组
-INSERT INTO groups (id, parent_id, name, description, created_time, updated_time, created_by, updated_by)
-VALUES (101, -1, '总公司', '总公司', now(), now(), 'system', 'system'),
- (102, 101, '上海分公司', '上海分公司', now(), now(), 'system', 'system'),
- (103, 102, '研发部门', '负责产品研发', now(), now(), 'system', 'system'),
- (104, 102, '产品部门', '负责产品设计', now(), now(), 'system', 'system'),
- (105, 102, '运营部门', '负责公司产品运营', now(), now(), 'system', 'system'),
- (106, 102, '销售部门', '负责公司产品销售', now(), now(), 'system', 'system'),
- (107, 101, '北京分公司', '北京分公司', now(), now(), 'system', 'system');
--- 菜单
-INSERT INTO menu (id, parent_id, type, href, icon, name, description, order_num, created_time, updated_time, created_by, updated_by)
-VALUES (101, -1, 'MENU', '/admin', 'setting', '系统管理', '系统设置管理', 0, now(), now(), 'system', 'system'),
- (102, 101, 'MENU', '/admin/users', 'fa-user', '用户管理', '用户新增,修改,查看,删除', 10, now(), now(), 'system', 'system'),
- (103, 101, 'MENU', '/admin/menus', 'category', '菜单管理', '菜单新增,修改,删除', 20, now(), now(), 'system', 'system');
-
-INSERT INTO user_group_relation (id, user_id, group_id, created_time, updated_time, created_by, updated_by)
-VALUES (101, 101, 101, now(), now(), 'system', 'system'),
- (102, 102, 101, now(), now(), 'system', 'system');
-INSERT INTO user_position_relation (id, user_id, position_id, created_time, updated_time, created_by, updated_by)
-VALUES (101, 101, 103, now(), now(), 'system', 'system'),
- (102, 102, 103, now(), now(), 'system', 'system');
--- 角色关系表
-INSERT INTO role_menu_relation (id, role_id, menu_id, created_time, updated_time, created_by, updated_by)
-VALUES (101, 101, 101, now(), now(), 'system', 'system'),
- (102, 101, 102, now(), now(), 'system', 'system'),
- (103, 101, 103, now(), now(), 'system', 'system'),
- (104, 102, 101, now(), now(), 'system', 'system'),
- (105, 102, 102, now(), now(), 'system', 'system'),
- (106, 103, 101, now(), now(), 'system', 'system'),
- (107, 103, 102, now(), now(), 'system', 'system'),
- (108, 103, 103, now(), now(), 'system', 'system');
diff --git a/sysadmin/organization/pom.xml b/sysadmin/organization/pom.xml
deleted file mode 100644
index c4b6ef3f..00000000
--- a/sysadmin/organization/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
- 4.0.0
-
- organization
- 0.0.1-SNAPSHOT
- jar
-
- organization
- Demo Organization project for Spring Boot
-
-
- sysadmin
- com.springboot.cloud
- 0.0.1-SNAPSHOT
-
-
-
-
- com.alicp.jetcache
- jetcache-starter-redis
- 2.5.14
-
-
-
-
-
-
-
- com.spotify
- docker-maven-plugin
- 1.2.0
-
-
- cike/${project.artifactId}
- ${project.basedir}/src/main/docker
- true
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/sysadmin/organization/src/main/docker/Dockerfile b/sysadmin/organization/src/main/docker/Dockerfile
deleted file mode 100644
index d8371cc7..00000000
--- a/sysadmin/organization/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM java:alpine
-VOLUME /tmp
-ADD organization-0.0.1-SNAPSHOT.jar app.jar
-ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java
deleted file mode 100644
index 524dcf9d..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/OrganizationApplication.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.springboot.cloud.sysadmin.organization;
-
-import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
-import com.alicp.jetcache.anno.config.EnableMethodCache;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableCircuitBreaker
-@EnableMethodCache(basePackages = "com.springboot.cloud")
-@EnableCreateCacheAnnotation
-public class OrganizationApplication {
- public static void main(String[] args) {
- SpringApplication.run(OrganizationApplication.class, args);
- }
-}
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java
deleted file mode 100644
index 2abadf4d..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/BusConfig.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.config;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.core.Binding;
-import org.springframework.amqp.core.BindingBuilder;
-import org.springframework.amqp.core.Queue;
-import org.springframework.amqp.core.TopicExchange;
-import org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter;
-import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
-import org.springframework.amqp.support.converter.MessageConverter;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@Slf4j
-public class BusConfig {
-
- public static final String QUEUE_NAME = "event-organization";
- public static final String EXCHANGE_NAME = "spring-boot-exchange";
- public static final String ROUTING_KEY = "organization-resource";
-
- @Bean
- Queue queue() {
- log.info("queue name:{}", QUEUE_NAME);
- return new Queue(QUEUE_NAME, false);
- }
-
- @Bean
- TopicExchange exchange() {
- log.info("exchange:{}", EXCHANGE_NAME);
- return new TopicExchange(EXCHANGE_NAME);
- }
-
- @Bean
- Binding binding(Queue queue, TopicExchange exchange) {
- log.info("binding {} to {} with {}", queue, exchange, ROUTING_KEY);
- return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);
- }
-
- @Bean
- public MessageConverter messageConverter() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
- return new ContentTypeDelegatingMessageConverter(new Jackson2JsonMessageConverter(objectMapper));
- }
-
-}
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java
deleted file mode 100644
index 83b26193..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyMetaObjectHandler.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.config;
-
-import com.springboot.cloud.common.web.handler.PoMetaObjectHandler;
-import org.springframework.stereotype.Component;
-
-@Component
-public class MyMetaObjectHandler extends PoMetaObjectHandler {
-
-}
\ No newline at end of file
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java
deleted file mode 100644
index 97f25298..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MyRedisConfig.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.config;
-
-import com.springboot.cloud.common.web.redis.RedisConfig;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-@EnableCaching
-public class MyRedisConfig extends RedisConfig {
-
-}
\ No newline at end of file
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java
deleted file mode 100644
index ce05428c..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/MybatisConfig.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.config;
-
-import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-
-@EnableTransactionManagement
-@Configuration
-public class MybatisConfig {
- /**
- * 初使化Mybatis审计字段自动赋值的interceptor
- */
- @Bean
- public ISqlInjector sqlInjector() {
- return new LogicSqlInjector();
- }
-
- /**
- * 分页插件
- */
- @Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
- }
-}
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java
deleted file mode 100644
index 20f19d48..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/SwaggerConfig.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@Configuration
-@EnableSwagger2
-public class SwaggerConfig {
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage("com.springboot.cloud.sysadmin.organization"))
- .paths(PathSelectors.any())
- .build();
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title("系统管理API")
- .description("系统管理,组织人员管理、角色权限管理、岗位管理")
- .termsOfServiceUrl("https://github.com/zhoutaoo/SpringCloud")
- .version("2.0")
- .build();
- }
-
-}
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java
deleted file mode 100644
index acd71b5b..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/config/WebServerMvcConfigurerAdapter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.config;
-
-import com.springboot.cloud.common.web.interceptor.UserInterceptor;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@Configuration
-public class WebServerMvcConfigurerAdapter implements WebMvcConfigurer {
-
- @Bean
- public HandlerInterceptor userInterceptor() {
- return new UserInterceptor();
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(userInterceptor());
- }
-}
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GroupMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GroupMapper.java
deleted file mode 100644
index 4c613edf..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/GroupMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.springboot.cloud.sysadmin.organization.entity.po.Group;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-@Repository
-@Mapper
-public interface GroupMapper extends BaseMapper {
-}
\ No newline at end of file
diff --git a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/MenuMapper.java b/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/MenuMapper.java
deleted file mode 100644
index 0d9f1a1b..00000000
--- a/sysadmin/organization/src/main/java/com/springboot/cloud/sysadmin/organization/dao/MenuMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.springboot.cloud.sysadmin.organization.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.springboot.cloud.sysadmin.organization.entity.po.Menu;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-@Repository
-@Mapper
-public interface MenuMapper extends BaseMapper