wuwen 5 years ago
parent
commit
29a248b7d8
19 changed files with 364 additions and 166 deletions
  1. 30 0
      ssj_aijia/pom.xml
  2. 50 51
      ssj_aijia/ssj-aijia-api/pom.xml
  3. 2 2
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/Application.java
  4. 1 1
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/controller/InitController.java
  5. 1 1
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/util/JsonResult.java
  6. 5 5
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/util/ResultCode.java
  7. 3 3
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/web/CustomHttpInterceptor.java
  8. 6 6
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/web/SwaggerConfig.java
  9. 3 3
      ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/web/WebConfig.java
  10. 1 1
      ssj_aijia/ssj-aijia-common-config/src/main/resources/application.yml
  11. 12 23
      ssj_aijia/ssj-aijia-api/src/main/resources/bootstrap.yaml
  12. 0 12
      ssj_aijia/ssj-aijia-common-config/src/main/resources/bootstrap.yaml
  13. 0 42
      ssj_aijia/ssj-aijia-common-config/src/main/resources/logback.xml
  14. 0 16
      ssj_aijia/ssj-aijia-common-config/src/main/resources/registry.conf
  15. 60 0
      ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/util/JsonResult.java
  16. 36 0
      ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/util/ResultCode.java
  17. 50 0
      ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/web/CustomHttpInterceptor.java
  18. 60 0
      ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/web/SwaggerConfig.java
  19. 44 0
      ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/web/WebConfig.java

+ 30 - 0
ssj_aijia/pom.xml

@@ -34,6 +34,7 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
         <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version>
+        <swagger.version>2.9.2</swagger.version>
     </properties>
 
     <dependencyManagement>
@@ -66,6 +67,35 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-zipkin</artifactId>
         </dependency>
+        
+        <dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+		</dependency>
+		<!-- swagger集成 -->
+		<dependency>
+			<groupId>io.springfox</groupId>
+			<artifactId>springfox-swagger2</artifactId>
+			<version>${swagger.version}</version>
+		</dependency>
+		<!-- 默认swagger-ui -->
+		<dependency>
+			<groupId>io.springfox</groupId>
+			<artifactId>springfox-swagger-ui</artifactId>
+			<version>${swagger.version}</version>
+		</dependency>
+		<!-- 更易用第三方swagger-ui组件 -->
+		<dependency>
+			<groupId>com.github.xiaoymin</groupId>
+			<artifactId>swagger-bootstrap-ui</artifactId>
+			<version>1.9.3</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.json-lib</groupId>
+			<artifactId>json-lib-ext-spring</artifactId>
+			<version>1.0.2</version>
+		</dependency>
+
     </dependencies>
 
     <repositories><!-- 代码库 -->

+ 50 - 51
ssj_aijia/ssj-aijia-api/pom.xml

@@ -1,56 +1,55 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>ssj-aijia</artifactId>
+        <groupId>com.cloud.ssj</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-	<artifactId>ssj-aijia-api</artifactId>
-	<packaging>jar</packaging>
+    <artifactId>ssj-aijia-api</artifactId>
 
-	<parent>
-		<groupId>com.minbo.cloud.alibaba</groupId>
-		<artifactId>spring-cloud-alibaba-study-parent</artifactId>
-		<version>0.0.1-SNAPSHOT</version>
-	</parent>
 
-	<dependencies>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-web</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.projectlombok</groupId>
-			<artifactId>lombok</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.springfox</groupId>
-			<artifactId>springfox-swagger2</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.springfox</groupId>
-			<artifactId>springfox-swagger-ui</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.github.xiaoymin</groupId>
-			<artifactId>swagger-bootstrap-ui</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>net.sf.json-lib</groupId>
-			<artifactId>json-lib-ext-spring</artifactId>
-		</dependency>
-		
-		<dependency>
-			<groupId>org.springframework.cloud</groupId>
-			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.cloud</groupId>
-			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.cloud</groupId>
-			<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
-		</dependency>
-		
-	</dependencies>
-</project>
+    <!--依赖-->
+    <dependencies>
+        <!--shop-common-->
+        <dependency>
+            <groupId>com.cloud.ssj</groupId>
+            <artifactId>ssj-aijia-common-config</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>com.cloud.ssj</groupId>
+            <artifactId>ssj-aijia-common-model</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.56</version>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.6</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 2 - 2
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/Application.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba;
+package com.cloud.ssj;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -7,7 +7,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
 
 /**
- * 程�主入�
+ * 程�主入�
  * 
  * @author Minbo
  *

+ 1 - 1
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/controller/InitController.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba.controller;
+package com.cloud.ssj.controller;
 
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;

+ 1 - 1
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/util/JsonResult.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba.util;
+package com.cloud.ssj.util;
 
 import net.sf.json.JSONObject;
 

+ 5 - 5
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/util/ResultCode.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba.util;
+package com.cloud.ssj.util;
 
 public enum ResultCode {
 
@@ -8,11 +8,11 @@ public enum ResultCode {
 	/** 数�为空 */
 	SUCCESS_NO_DATA("201", "数�为空"),
 
-	/** 用户�存在 */
-	SUCCESS_NO_USER("202", "用户�存在"),
+	/** 用户�存� */
+	SUCCESS_NO_USER("202", "用户�存�"),
 
-	/** 今天的é‡�å·²ç»�è·‘å…‰äº */
-	SUCCESS_ALL_GONE("203", "今天的é‡�å·²ç»�è·‘å…‰äº"),
+	/** 今天的�已�跑光� */
+	SUCCESS_ALL_GONE("203", "今天的�已�跑光�"),
 
 	/** 失败,请�试 */
 	SUCCESS_FAIL("204", "失败,请�试");

+ 3 - 3
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/web/CustomHttpInterceptor.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba.web;
+package com.cloud.ssj.web;
 
 import java.util.Map;
 
@@ -12,7 +12,7 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 import lombok.extern.slf4j.Slf4j;
 
 /**
- * 拦截处理
+ * 拦截处理��?
  * 
  * @author Minbo
  */
@@ -27,7 +27,7 @@ public class CustomHttpInterceptor extends HandlerInterceptorAdapter {
 		String url = request.getRequestURL().toString();
 		String method = request.getMethod();
 		String queryString = "";
-		// 去掉最后一个空格
+		// 去掉��?后一个空��?
 		Map<String, String[]> params = request.getParameterMap();
 		for (String key : params.keySet()) {
 			String[] values = params.get(key);

+ 6 - 6
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/web/SwaggerConfig.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba.web;
+package com.cloud.ssj.web;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -22,8 +22,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 public class SwaggerConfig {
 
 	/**
-	 * 创建一个Docket对象 调用select()方法, 生成ApiSelectorBuilder对象实例,该对象负责定义外漏的API入口
-	 * 閫氳繃浣跨敤RequestHandlerSelectors鍜孭athSelectors鏉ユ彁渚汸redicate锛屽湪姝ゆ垜浠�娇鐢╝ny()鏂规硶锛屽皢鎵€鏈堿PI閮介€氳繃Swagger杩涜�鏂囨。绠$悊
+	 * 鍒涘缓涓?涓狣ocket瀵硅薄 璋冪敤select()鏂规硶锛? 鐢熸垚ApiSelectorBuilder瀵硅薄瀹炰緥锛岃�瀵硅薄璐熻矗瀹氫箟澶栨紡鐨凙PI鍏ュ彛
+	 * 閫氳繃浣跨敤RequestHandlerSelectors鍜孭athSelectors鏉ユ彁渚汸redicate锛屽湪姝ゆ垜浠�娇鐢╝ny()鏂规硶锛屽皢鎵?鏈堿PI閮介?氳繃Swagger杩涜�鏂囨。绠$悊
 	 * 
 	 * @return
 	 */
@@ -37,7 +37,7 @@ public class SwaggerConfig {
 		pars.add(useridPar.build());
 
 		return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
-				// 濡傛灉涓嶆兂灏嗘墍鏈夌殑鎺ュ彛閮介氳繃swagger绠$悊鐨勮瘽锛屽彲浠ュ皢RequestHandlerSelectors.any()淇�敼涓篟equestHandlerSelectors.basePackage()
+				// 濡傛灉涓嶆兂灏嗘墍鏈夌殑鎺ュ彛閮介?氳繃swagger绠$悊鐨勮瘽锛屽彲浠ュ皢RequestHandlerSelectors.any()淇�敼涓篟equestHandlerSelectors.basePackage()
 				// .apis(RequestHandlerSelectors.any())
 				.apis(RequestHandlerSelectors.basePackage("com.minbo")).paths(PathSelectors.any()).build()
 				.globalOperationParameters(pars);
@@ -48,11 +48,11 @@ public class SwaggerConfig {
 		return new ApiInfoBuilder()
 				// 鏍囬�
 				.title("鍦ㄧ嚎鎺ュ彛娴嬭瘯骞冲彴锛歮icroservice-alibaba-sentinel鏈嶅姟")
-				// 简介
+				// 绠?浠?
 				.description("rest鎺ュ彛灞傦細鎺ュ彛鏈嶅姟")
 				// 鏈嶅姟鏉℃�
 				.termsOfServiceUrl("https://blog.csdn.net/hemin1003")
-				// 作者个人信息
+				// 浣滆?呬釜浜轰俊鎭?
 				.contact("Minbo.He")
 				// 鐗堟湰
 				.version("1.0").build();

+ 3 - 3
ssj_aijia/ssj-aijia-api/src/main/java/com/minbo/cloud/alibaba/web/WebConfig.java

@@ -1,4 +1,4 @@
-package com.minbo.cloud.alibaba.web;
+package com.cloud.ssj.web;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -8,7 +8,7 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 
 /**
- * 拦截器定
+ * 拦截器定��?
  * 
  * @author Minbo.He
  */
@@ -36,7 +36,7 @@ public class WebConfig extends WebMvcConfigurationSupport {
 	 */
 	@Override
 	public void addInterceptors(InterceptorRegistry registry) {
-		// 定义过滤拦截的url名称,拦截所有请
+		// 定义过滤拦截的url名称,拦截所有请��?
 		registry.addInterceptor(this.getInterceptor()).addPathPatterns("/**");
 		super.addInterceptors(registry);
 	}

+ 1 - 1
ssj_aijia/ssj-aijia-common-config/src/main/resources/application.yml

@@ -9,7 +9,7 @@ spring:
     sampler:
       probability: 1.0  #采样的百分比
   application:
-    name: service-config
+    name: service-api
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
     url: jdbc:mysql://127.0.0.1:3306/alibaba?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=UTC

+ 12 - 23
ssj_aijia/ssj-aijia-api/src/main/resources/bootstrap.yaml

@@ -1,23 +1,12 @@
-spring:
-   application:
-      name: microservice-alibaba-nacos-config
-   profiles:
-      active: dev
-   cloud:
-      nacos:
-         discovery:
-            server-addr: 127.0.0.1:8848
-            namespace: 45702247-e8d9-4cca-a7d5-7ef302b3b4ce
-         config:
-            server-addr: 127.0.0.1:8848
-            namespace: 45702247-e8d9-4cca-a7d5-7ef302b3b4ce
-            file-extension: properties
-            shared-dataids: microservice-alibaba-nacos-config.properties
-            refreshable-dataids: microservice-alibaba-nacos-config.properties
-      sentinel:
-         transport:
-            port: 8719 # 默认数据端口
-            dashboard: 127.0.0.1:9191
-# server
-server:
-   port: 9092
+spring:
+  application:
+    name: service-api
+  cloud:
+    nacos:
+      config:
+        server-addr: localhost:8848 # nacos的服务端地址
+        namespace: public
+        group: DEFAULT_GROUP
+    alibaba:
+      seata:
+        tx-service-group: service-api

+ 0 - 12
ssj_aijia/ssj-aijia-common-config/src/main/resources/bootstrap.yaml

@@ -1,12 +0,0 @@
-spring:
-  application:
-    name: service-config
-  cloud:
-    nacos:
-      config:
-        server-addr: localhost:8848 # nacos的服务端地址
-        namespace: public
-        group: DEFAULT_GROUP
-    alibaba:
-      seata:
-        tx-service-group: service-config

+ 0 - 42
ssj_aijia/ssj-aijia-common-config/src/main/resources/logback.xml

@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-	<!-- %d日期,%t线程名,%c类的全名,%p日志级别,%file文件名,%line行数,%m%n输出的信息 -->
-	<!-- 控制台输出配置 -->
-	<appender name="STDOUT"
-		class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>%d [%t] [%c] [%p] (%file:%line\)- %m%n</pattern>
-			<charset>UTF-8</charset>
-		</encoder>
-	</appender>
-	<!-- 日志文件配置 -->
-	<appender name="baselog"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<File>log/run.log</File>
-		<rollingPolicy
-			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>log/run.log.%d.%i</fileNamePattern>
-			<timeBasedFileNamingAndTriggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<!-- 每一个日志文件最大size -->
-				<maxFileSize>64 MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-			<!-- 保留天数 -->
-			<maxHistory>7</maxHistory>
-			<cleanHistoryOnStart>true</cleanHistoryOnStart>
-		</rollingPolicy>
-		<encoder>
-			<pattern>
-				%d [%t] [%c] [%p] (%file:%line\)- %m%n
-			</pattern>
-			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
-		</encoder>
-	</appender>
-	<root level="INFO">
-		<appender-ref ref="STDOUT" />
-	</root>
-	<!-- 定义日志输出的package包名 -->
-	<logger name="com.minbo" level="DEBUG">
-		<appender-ref ref="baselog" />
-	</logger>
-</configuration>

+ 0 - 16
ssj_aijia/ssj-aijia-common-config/src/main/resources/registry.conf

@@ -1,16 +0,0 @@
-registry {
- type = "nacos"
- nacos {
-   serverAddr = "localhost"
-   namespace = "public"
-   cluster = "default"
- }
-}
-config {
- type = "nacos"
- nacos {
-   serverAddr = "localhost"
-   namespace = "public"
-   cluster = "default"
- }
-}

+ 60 - 0
ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/util/JsonResult.java

@@ -0,0 +1,60 @@
+package com.cloud.ssj.util;
+
+import net.sf.json.JSONObject;
+
+public class JsonResult {
+	private String code;
+	private String message;
+	private Object data;
+
+	public JsonResult() {
+		this.setCode(ResultCode.SUCCESS);
+		this.setMessage(ResultCode.SUCCESS.msg());
+	}
+
+	public JsonResult(ResultCode code) {
+		this.setCode(code);
+		this.setMessage(code.msg());
+	}
+
+	public JsonResult(ResultCode code, String data) {
+		this.setCode(code);
+		this.setMessage(code.msg());
+		this.setData(data);
+	}
+
+	public JsonResult(ResultCode code, Object data) {
+		this.setCode(code);
+		this.setMessage(code.msg());
+		this.setData(data);
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(ResultCode code) {
+		this.code = code.val();
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public Object getData() {
+		return data;
+	}
+
+	public void setData(Object data) {
+		this.data = data;
+	}
+
+	public String toJsonString() {
+		JSONObject json = JSONObject.fromObject(this);
+		return json.toString();
+	}
+}

+ 36 - 0
ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/util/ResultCode.java

@@ -0,0 +1,36 @@
+package com.cloud.ssj.util;
+
+public enum ResultCode {
+
+	/** �功 */
+	SUCCESS("200", "�功"),
+
+	/** 数�为空 */
+	SUCCESS_NO_DATA("201", "数�为空"),
+
+	/** 用户�存� */
+	SUCCESS_NO_USER("202", "用户�存�"),
+
+	/** 今天的�已�跑光� */
+	SUCCESS_ALL_GONE("203", "今天的�已�跑光�"),
+
+	/** 失败,请�试 */
+	SUCCESS_FAIL("204", "失败,请�试");
+
+	private ResultCode(String val, String msg) {
+		this.val = val;
+		this.msg = msg;
+	}
+
+	public String val() {
+		return val;
+	}
+
+	public String msg() {
+		return msg;
+	}
+
+	private String val;
+	private String msg;
+
+}

+ 50 - 0
ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/web/CustomHttpInterceptor.java

@@ -0,0 +1,50 @@
+package com.cloud.ssj.web;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 拦截处理?
+ * 
+ * @author Minbo
+ */
+@Component
+@Slf4j
+@RefreshScope
+public class CustomHttpInterceptor extends HandlerInterceptorAdapter {
+
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
+			throws Exception {
+		long start = System.currentTimeMillis();
+		String url = request.getRequestURL().toString();
+		String method = request.getMethod();
+		String queryString = "";
+		// 去掉?后一个空?
+		Map<String, String[]> params = request.getParameterMap();
+		for (String key : params.keySet()) {
+			String[] values = params.get(key);
+			for (int i = 0; i < values.length; i++) {
+				String value = values[i];
+				queryString += key + "=" + value + "&";
+			}
+		}
+		// URL 参数
+		queryString = queryString.equals("") ? null : queryString.substring(0, queryString.length() - 1);
+
+		long end = System.currentTimeMillis();
+
+		log.info(String.format("请求参数, url: %s, method: %s, query-params: %s, run-time: %s", url, method, queryString,
+				(end - start) + ""));
+
+		return true;
+	}
+
+}

+ 60 - 0
ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/web/SwaggerConfig.java

@@ -0,0 +1,60 @@
+package com.cloud.ssj.web;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Parameter;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+
+	/**
+	 * 创建�个Docket对象 调用select()方法� 生�ApiSelectorBuilder对象实例,该对象负责定义外�的API入�
+	 * 通过使用RequestHandlerSelectors和PathSelectors��供Predicate,在此我们使用any()方法,将�有API都�过Swagger进行文档管�
+	 * 
+	 * @return
+	 */
+	@Bean
+	public Docket createRestApi() {
+		// 定义全局header�数
+		ParameterBuilder useridPar = new ParameterBuilder();
+		List<Parameter> pars = new ArrayList<>();
+		useridPar.name("access_token").defaultValue("").description("访问身份令牌").modelRef(new ModelRef("string"))
+				.parameterType("header").required(false).build();
+		pars.add(useridPar.build());
+
+		return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+				// 如果�想将所有的接�都�过swagger管�的�,�以将RequestHandlerSelectors.any()修改为RequestHandlerSelectors.basePackage()
+				// .apis(RequestHandlerSelectors.any())
+				.apis(RequestHandlerSelectors.basePackage("com.minbo")).paths(PathSelectors.any()).build()
+				.globalOperationParameters(pars);
+	}
+
+	@SuppressWarnings("deprecation")
+	private ApiInfo apiInfo() {
+		return new ApiInfoBuilder()
+				// 标题
+				.title("在线接�测试平�:microservice-alibaba-sentinel�务")
+				// ç®?ä»?
+				.description("rest接�层:接��务")
+				// �务�款
+				.termsOfServiceUrl("https://blog.csdn.net/hemin1003")
+				// 作�个人信�
+				.contact("Minbo.He")
+				// 版本
+				.version("1.0").build();
+	}
+}

+ 44 - 0
ssj_aijia/ssj-aijia-sys/src/main/java/com/cloud/ssj/web/WebConfig.java

@@ -0,0 +1,44 @@
+package com.cloud.ssj.web;
+
+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.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+/**
+ * 拦截器定?
+ * 
+ * @author Minbo.He
+ */
+@Configuration
+public class WebConfig extends WebMvcConfigurationSupport {
+
+	// 让bean提前加载,让拦截器中的@Autowired生效
+	@Bean
+	public HandlerInterceptor getInterceptor() {
+		return new CustomHttpInterceptor();
+	}
+
+	@Override
+	public void addResourceHandlers(ResourceHandlerRegistry registry) {
+		// 解决 swagger-ui.html 404报错
+		registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+		registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+
+		// 解决 doc.html 404 报错
+		registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
+	}
+
+	/**
+	 * 可定义多个拦截器
+	 */
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		// 定义过滤拦截的url名称,拦截所有请?
+		registry.addInterceptor(this.getInterceptor()).addPathPatterns("/**");
+		super.addInterceptors(registry);
+	}
+
+}