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