pom
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version> </dependency>
config
swagger2Config
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;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.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;import springfox.documentation.service.Contact;@Configuration@EnableSwagger2@ConditionalOnExpression("${swagger.enable}")public class swagger2Config { @Bean public Docket userRestApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("用户模块") //模块名称 .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.example.logre.controller")) //扫描的控制器路径 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("xxx项目开发接口文档") //接口文档标题 .description("此文档仅供开发技术组领导、开发人员使用") //描述 .termsOfServiceUrl("http://www.baidu.com/") //相关的网址 .contact(new Contact("后端开发","http://www.xxx.com/","XXXXXX7805@qq.com")) //作者 邮箱等 .version("1.0") //版本号 .build(); }}
MvcStaticMappingConfig
import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration@EnableWebMvcpublic class MvcStaticMappingConfig implements WebMvcConfigurer { /** * 设置静态资源路径的映射 */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 解决静态资源无法访问 registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); // 解决swagger无法访问 registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); // 解决swagger的js文件无法访问 registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); }}
controller
@RestController@RequestMapping("demo")@Api(tags = "demo")public class DemoController { @ApiOperation(value = "新增商品",notes = "新增商品方法",httpMethod = "POST", response = String.class) @RequestMapping("getName") public String getName(@RequestBody Name name){ return name.getName(); }}
model
import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.util.List;@ApiModel(value="user对象",description="用户对象user类")@Datapublic class Name { @ApiModelProperty(value="用户id",name="id",example="100",required=true) private Long id; @ApiModelProperty("姓名") private String name; @ApiModelProperty("年龄") private String age; @ApiModelProperty("性别") private Sex sex; @ApiModelProperty("地址") private String addr; @ApiModelProperty("手机号") private String phone; @ApiModelProperty("邮箱") private String email; @ApiModelProperty("身份证") private String idCard; @ApiModelProperty("健康") private String health; @ApiModelProperty("获取") private List<Good> goods;}