网上这类文章 太多, 一搜一大把 ,可是要不是知识太过于老旧,就是配置没有说名清楚,你的项目按照他的配置却不能正常运行:html
因此本文的目的: 配置swagger 2 那swagger 1 不说一下吗,我以为没有必要了,确实须要以jar包方式构建 或者 维护老项目,那么参考下面的链接git
https://github.com/swagger-api/swagger-ui/tree/2.x/dist 下载这个路径内容,导入相关依赖便可,不建议使用github
2.1: 导入libweb
<!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
2.2 2: 建立配置类spring
@Configuration @EnableSwagger2 public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() // 扫描包路径 .apis(RequestHandlerSelectors.basePackage("com.dgw.controller")) // 扫描@APi 标记的Class //.apis(RequestHandlerSelectors.withClassAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Swagger2构建RESTful APIs") .description(" 项目 ") .contact(new Contact("dgw", "https://www.cnblogs.com/dgwblog/", "xxx@qq.com")) .version("1.0") .build(); } }
2.3 基本上到这里 网上那些教程让你启动 http://localhost:8080/swagger-ui.html# 访问查看,而后介绍API就完事了 ? 他难道没有用到 拦截器 Spring Boot 访问映射 ? 你开发项目 就是一个hello world? 哈哈apache
下面你必须配置资源映射 sping boot 2 在webmvcconfigurationsupport中配置api
/** * 支持webjars */ registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); /** * 支持swagger */ // 解决 SWAGGER 404报错 registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
2.4 若是你的项目展现没有使用到拦截器 那么是能够成功访问的 ,可是最好知道须要配置拦截器mvc
registry.addInterceptor(new LoginIntercepter()).addPathPatterns("/**") .excludePathPatterns("/user/login","/","/index") // swagger 排除规则 .excludePathPatterns("/swagger-ui.html") .excludePathPatterns("/swagger-resources/**") .excludePathPatterns("/error") .excludePathPatterns("/webjars/**");
这个时候 访问一下: 没有问题:app
对了 若是你的项目用到 spring security 还须要排除如下配置ide
@Configuration public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security", "/swagger-ui.html", "/webjars/**"); } }
导入lib'
<!-- https://mvnrepository.com/artifact/com.spring4all/swagger-spring-boot-starter --> <dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <version>1.9.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
application.xml配置
swagger.title=spring-boot-starter-swagger swagger.description=Starter for swagger 2.x swagger.version=1.4.0.RELEASE swagger.license=Apache License, Version 2.0 swagger.licenseUrl=https://www.apache.org/licenses/LICENSE-2.0.html swagger.termsOfServiceUrl=https://github.com/dyc87112/spring-boot-starter-swagger swagger.contact.name=didi swagger.contact.url=https://www.cnblogs.com/dgwblog/ swagger.contact.email=xxx@qq.com # 扫描包路径 swagger.base-package=com.dgw.controller swagger.base-path=/**
启动配置swagger 扫描
@SpringBootApplication 这个注解 @EnableSwagger2Doc public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
这里若是出现了 建议看前面的 文章 ,本身考虑一下 为何不能访问.
这里写个测试
@Controller @Api("接口说明") public class HelloController { @ApiOperation(value = "hello方法 ",notes = "返回index") @GetMapping("/hello") public String hello(){ return "index"; } }
可以正常访问: