不多说,直接上代码:
代码地址:
链接:https://pan.baidu.com/s/1FFYxAijkKzyDSGc44ZF7aQ
提取码:lk8c
1.pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>Cairo-SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration> <!--设置程序执行的主类 -->
<mainClass>com.jz.SwaggerApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
<finalName>demo001</finalName>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
2.SwaggerConfig.java配置
/**
*
*/
package com.jz.swagger.config.swagger;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMethod;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.ResponseMessageBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.ResponseMessage;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author liurui
* @date 2019年8月30日
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private String title="swagger-demo";
private String desc="swagger-demo基于springBoot编写的RESful-API";
private String version="0.0.1.SNAPSHOT";
private String termsOfServiceUrl="http://localhost:8080/swagger-ui.html#/";
private String license="Apache2.0";
private String licenseUrl="http=//www.apache.org/licenses/LICENSE-2.0.html";
private String basePackage="com.jz.swagger.web.controller";
private String groupName="默认API示例分组";
private String contactName="liurui";
private String contactUrl="https://github.com/liurui416";
private String contactEmail="liurui416@qq.com";
private ApiInfo apiInfo() {
return new ApiInfoBuilder().
title(title).
description(desc).
version(version).
termsOfServiceUrl(termsOfServiceUrl).
licenseUrl(licenseUrl).
license(license).
contact(new Contact(contactName, contactUrl, contactEmail)).
build();
}
@Bean
public Docket swaggerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName(groupName)
.directModelSubstitute(LocalDate.class, String.class)
.genericModelSubstitutes(ResponseEntity.class)
.useDefaultResponseMessages(false)
.globalResponseMessage(RequestMethod.POST, customerResponseMessage())
.globalResponseMessage(RequestMethod.GET, customerResponseMessage())
.forCodeGeneration(true)
.select()
.apis(RequestHandlerSelectors.basePackage(basePackage))
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private List<ResponseMessage> customerResponseMessage() {
List<ResponseMessage> list = new ArrayList<>();
list.add(new ResponseMessageBuilder().code(200).message("请求成功").build());
list.add(new ResponseMessageBuilder().code(201).message("资源创建成功").build());
list.add(new ResponseMessageBuilder().code(204).message("服务器成功处理了请求,但不需要返回任何实体内容").build());
list.add(new ResponseMessageBuilder().code(400).message("请求失败,具体查看返回业务状态码与对应消息").build());
list.add(new ResponseMessageBuilder().code(401).message("请求失败,未经过身份认证").build());
list.add(new ResponseMessageBuilder().code(405).message("请求方法不支持").build());
list.add(new ResponseMessageBuilder().code(415).message("请求媒体类型不支持").build());
list.add(new ResponseMessageBuilder().code(500).message("服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理").build());
list.add(new ResponseMessageBuilder().code(503).message("服务器当前无法处理请求,这个状况是临时的,并且将在一段时间以后恢复").build());
return list;
}
}
3.DemoController.java
/**
*
*/
package com.jz.swagger.web.controller;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.jz.swagger.utils.result.AllResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
/**
* @author liurui
* @date 2019年8月30日
*/
@Api(tags="swagger-demo")
@RestController
@RequestMapping("/demo")
@Slf4j
public class DemoController {
@ApiOperation(value="put测试",response=AllResult.class)
@PutMapping("/put")
public AllResult put(String name) {
log.info("name={}",name);
return AllResult.ok(name);
}
}
4.SpringBoot启动程序
/**
*
*/
package com.jz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author liurui
* @date 2019年8月30日
*/
@SpringBootApplication
public class SwaggerApplication {
/**
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(SwaggerApplication.class, args);
}
}
运行结果图: