解决spring boot中swagger-ui.html访问404以及配置全局header

在spring-boot中使用swagger:
1、添加maven插件:

      <dependency>
          <groupId>io.springfoxgroupId>
          <artifactId>springfox-swagger2artifactId>
          <version>${swagger.version}version>
      dependency>
      <dependency>
          <groupId>io.springfoxgroupId>
          <artifactId>springfox-swagger-uiartifactId>
          <version>${swagger.version}version>
      dependency>

2、代码配置:

@Configuration
@EnableSwagger2
public class Swagger2Config extends WebMvcConfigurerAdapter{
    /**
     * 这个地方要重新注入一下资源文件,不然不会注入资源的,也没有注入requestHandlerMappping,相当于xml配置的
     *  
     *  
     *  
     *  不知道为什么,这也是spring boot的一个缺点(菜鸟觉得的)
     * @param registry
     */
     @Override
     public void addResourceHandlers(ResourceHandlerRegistry registry) {
         registry.addResourceHandler("swagger-ui.html")
         .addResourceLocations("classpath:/META-INF/resources/");
         registry.addResourceHandler("/webjars*")
         .addResourceLocations("classpath:/META-INF/resources/webjars/");
     }
    //可以注入多个doket,也就是多个版本的api,可以在看到有三个版本groupName不能是重复的,v1和v2是ant风格匹配,配置文件
    @Bean
    public Docket api() {
        //可以添加多个header或参数
        ParameterBuilder aParameterBuilder = new ParameterBuilder();
        aParameterBuilder
                .parameterType("header") //参数类型支持header, cookie, body, query etc
                .name("token") //参数名
                .defaultValue("token") //默认值
                .description("header中token字段测试")
                .modelRef(new ModelRef("string"))//指定参数值的类型
                .required(false).build(); //非必需,这里是全局配置,然而在登陆的时候是不用验证的
        List aParameters = new ArrayList();
        aParameters.add(aParameterBuilder.build());
        return new Docket(DocumentationType.SWAGGER_2).groupName("v1").select().apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.ant("/api/v1/**")).build().apiInfo(apiInfo1()).globalOperationParameters(aParameters);
    }


    private ApiInfo apiInfo1() {
        return new ApiInfoBuilder()
                .title("exampleApi 0.01")
                .termsOfServiceUrl("www.example.com")
                .contact(new Contact("liumei","http://blog.csdn.net/pc_gad","[email protected]"))
                .version("v0.01")
                .build();
    }
}

效果图:
解决spring boot中swagger-ui.html访问404以及配置全局header_第1张图片

你可能感兴趣的:(java,基础)