From 159eaad1af4d103de7ebcd1127bcdf9f26e47607 Mon Sep 17 00:00:00 2001
From: wangfs <15029758498@163.com>
Date: Mon, 30 Jul 2018 10:27:30 +0800
Subject: [PATCH] 集成swagger
---
pom.xml | 17 +++++++++++++++--
src/main/java/com/zteits/oa/DailyReportApplication.java | 2 ++
src/main/java/com/zteits/oa/configuration/WebMvcConfig.java | 23 +++++++++++++++++++++++
src/main/java/com/zteits/oa/configuration/fiter/ResponseHeaderFilter.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zteits/oa/configuration/session/HttpSessionConfig.java | 2 +-
src/main/java/com/zteits/oa/configuration/swagger/SwaggerConfigAuto.java | 39 +++++++++++++++++++++++++++++++++++++++
src/main/java/com/zteits/oa/report/web/demo/DemoController.java | 23 +++++++++++++++++++++++
7 files changed, 150 insertions(+), 3 deletions(-)
create mode 100644 src/main/java/com/zteits/oa/configuration/WebMvcConfig.java
create mode 100644 src/main/java/com/zteits/oa/configuration/fiter/ResponseHeaderFilter.java
create mode 100644 src/main/java/com/zteits/oa/configuration/swagger/SwaggerConfigAuto.java
create mode 100644 src/main/java/com/zteits/oa/report/web/demo/DemoController.java
diff --git a/pom.xml b/pom.xml
index ca3a4a7..69e30c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -98,8 +98,21 @@
fastjson
1.2.47
-
-
+
+
+ io.springfox
+ springfox-swagger2
+ 2.7.0
+
+
+ io.springfox
+ springfox-swagger-ui
+ 2.7.0
+
+
+ org.springframework.security
+ spring-security-web
+
diff --git a/src/main/java/com/zteits/oa/DailyReportApplication.java b/src/main/java/com/zteits/oa/DailyReportApplication.java
index 50027ea..485632e 100644
--- a/src/main/java/com/zteits/oa/DailyReportApplication.java
+++ b/src/main/java/com/zteits/oa/DailyReportApplication.java
@@ -6,6 +6,8 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+
@SpringBootApplication
@EnableAutoConfiguration(exclude = {
diff --git a/src/main/java/com/zteits/oa/configuration/WebMvcConfig.java b/src/main/java/com/zteits/oa/configuration/WebMvcConfig.java
new file mode 100644
index 0000000..aeec27e
--- /dev/null
+++ b/src/main/java/com/zteits/oa/configuration/WebMvcConfig.java
@@ -0,0 +1,23 @@
+package com.zteits.oa.configuration;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+@Configuration
+@EnableWebMvc
+public class WebMvcConfig extends WebMvcConfigurerAdapter {
+
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
+
+ registry.addResourceHandler("swagger-ui.html")
+ .addResourceLocations("classpath:/META-INF/resources/");
+
+ registry.addResourceHandler("/webjars/**")
+ .addResourceLocations("classpath:/META-INF/resources/webjars/");
+
+ }
+}
diff --git a/src/main/java/com/zteits/oa/configuration/fiter/ResponseHeaderFilter.java b/src/main/java/com/zteits/oa/configuration/fiter/ResponseHeaderFilter.java
new file mode 100644
index 0000000..c935a4b
--- /dev/null
+++ b/src/main/java/com/zteits/oa/configuration/fiter/ResponseHeaderFilter.java
@@ -0,0 +1,47 @@
+package com.zteits.oa.configuration.fiter;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 添加响应统一请求头
+ *
+ * Copyright: Copyright (c) 2017 zteits
+ *
+ * @ClassName: ResponseHeaderFilter.java
+ * @Description:
+ * @version: v1.0.0
+ * @author: zhaowg
+ * @date: 2017年5月8日 下午3:17:18
+ * Modification History:
+ * Date Author Version Description
+ *---------------------------------------------------------*
+ * 2017年5月8日 zhaowg v1.0.0 创建
+ */
+public class ResponseHeaderFilter implements Filter{
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+ HttpServletResponse res = (HttpServletResponse) response;
+ res.addHeader("Access-Control-Allow-Origin", "*");
+ res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
+ res.addHeader("Access-Control-Allow-Headers", "Content-Type, X-Auth-Token, x-requested-with ,Authorization");
+ chain.doFilter(request, response);
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ }
+}
diff --git a/src/main/java/com/zteits/oa/configuration/session/HttpSessionConfig.java b/src/main/java/com/zteits/oa/configuration/session/HttpSessionConfig.java
index 38f3d10..10a53d1 100644
--- a/src/main/java/com/zteits/oa/configuration/session/HttpSessionConfig.java
+++ b/src/main/java/com/zteits/oa/configuration/session/HttpSessionConfig.java
@@ -18,7 +18,7 @@ import org.springframework.session.web.http.HttpSessionStrategy;
* ---------------------------------------------------------*
* 2017/5/16 atao v1.0.0 创建
*/
-//maxInactiveIntervalInSeconds
+//@maxInactiveIntervalInSeconds
@EnableRedisHttpSession(maxInactiveIntervalInSeconds=30*24*60*60)
public class HttpSessionConfig {
diff --git a/src/main/java/com/zteits/oa/configuration/swagger/SwaggerConfigAuto.java b/src/main/java/com/zteits/oa/configuration/swagger/SwaggerConfigAuto.java
new file mode 100644
index 0000000..77d5acb
--- /dev/null
+++ b/src/main/java/com/zteits/oa/configuration/swagger/SwaggerConfigAuto.java
@@ -0,0 +1,39 @@
+package com.zteits.oa.configuration.swagger;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+@Configuration // 配置注解,自动在本类上下文加载一些环境变量信息
+@EnableSwagger2 // 使swagger2生效
+public class SwaggerConfigAuto extends WebMvcConfigurationSupport{
+
+ @Bean
+ public Docket buildDocket(){
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(buildApiInf())
+ .select() .apis(RequestHandlerSelectors.basePackage("com.zteits.oa.report.web"))//controller路径
+ .paths(PathSelectors.any())
+ .build();
+ }
+
+ private ApiInfo buildApiInf(){
+ return new ApiInfoBuilder()
+ .title("欢迎是用swagger2")
+ .termsOfServiceUrl("http://blog.csdn.net/u014231523网址链接")
+ .description("springmvc swagger2")
+ .contact(new Contact("diaoxingguo", "http://blog.csdn.net/u014231523", "diaoxingguo@163.com"))
+ .build();
+
+ }
+}
diff --git a/src/main/java/com/zteits/oa/report/web/demo/DemoController.java b/src/main/java/com/zteits/oa/report/web/demo/DemoController.java
new file mode 100644
index 0000000..db20fbc
--- /dev/null
+++ b/src/main/java/com/zteits/oa/report/web/demo/DemoController.java
@@ -0,0 +1,23 @@
+package com.zteits.oa.report.web.demo;
+
+import javax.servlet.http.HttpServletRequest;
+
+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.RestController;
+
+import io.swagger.annotations.Api;
+
+@Api(value = "swagger测试", description = "swagger测")
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+
+ @RequestMapping(value="/demo",method = RequestMethod.POST)
+ public String test(@RequestBody String param, HttpServletRequest request){
+
+ return param;
+ }
+
+}
--
libgit2 0.21.4