赞
踩
项目大体结构如下:
swagger模块的pom配置:
- <?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">
- <parent>
- <artifactId>vue-test</artifactId>
- <groupId>com.gbx</groupId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>common</artifactId>
- <packaging>pom</packaging>
- <modules>
- <module>service-base</module>
- </modules>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <scope>provided </scope>
- </dependency>
-
- <!--swagger-->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- <scope>provided </scope>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- <scope>provided </scope>
- </dependency>
-
- </dependencies>
-
- </project>

swagger模块配置类:
- package com.gbx.vue.test.common.service.base;
-
- import com.google.common.base.Predicates;
- 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.service.Contact;
- 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 webApiConfig(){
- return new Docket(DocumentationType.SWAGGER_2)
- .groupName("webApi")
- .apiInfo(webApiInfo())
- .pathMapping("/")
- .select()// 选择哪些路径和api会生成document
- .apis(RequestHandlerSelectors.any())// 对所有api进行监控
- .paths(Predicates.not(PathSelectors.regex("/error.*"))) //排除error包下面的接口
- .paths(PathSelectors.regex("/.*"))// 对根下所有路径进行监控
- .build();
- }
-
- private ApiInfo webApiInfo(){
- return new ApiInfoBuilder()
- .title("网站-课程中心API文档")
- .description("本文档描述了课程中心微服务接口定义")
- .version("1.0")
- .contact(new Contact("gbx", "http://localhost:8001/swagger-ui.html", "666@qq.com"))
- .build();
- }
- }

引用swagger的业务模块主pom配置:
- <?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">
- <parent>
- <artifactId>vue-test</artifactId>
- <groupId>com.gbx</groupId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>service</artifactId>
- <packaging>pom</packaging>
- <modules>
- <module>service-edu</module>
- </modules>
-
- <dependencies>
- <!--引用swagger模块-->
- <dependency>
- <groupId>com.gbx</groupId>
- <artifactId>service-base</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!--mybatis-plus-->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- </dependency>
- <!--mysql-->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
- <dependency>
- <groupId>org.apache.velocity</groupId>
- <artifactId>velocity-engine-core</artifactId>
- </dependency>
- <!--swagger-->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- </dependency>
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- </dependency>
- <!--lombok用来简化实体类:需要安装lombok插件-->
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </dependency>
- <!--xls-->
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi-ooxml</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- </dependency>
- <!--httpclient-->
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- </dependency>
- <!--commons-io-->
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
- <!--gson-->
- <dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- </dependency>
- </dependencies>
- </project>

业务模块的次级模块pom不需要再引用了,只需要在启动类上配置swagger的配置类扫描路径即可:
- package com.gbx.vue.test.service.service.edu;
-
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.context.annotation.ComponentScan;
-
- @SpringBootApplication
- @ComponentScan(basePackages = {"com.gbx.vue.test"})
- public class ServiceEduApplication {
- public static void main(String[] args) {
- SpringApplication.run(ServiceEduApplication.class,args);
- }
- }
启动后就可以访问了,默认访问路径:localhost:port/swagger-ui.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。