美文网首页
springboot2.6集成swagger2

springboot2.6集成swagger2

作者: CXY_XZL | 来源:发表于2022-02-19 17:17 被阅读0次

    1.pom.xml配置

          <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.6.3</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        ...
        ...
        ...
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.9.2</version>
            </dependency>
    
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>25.1-jre</version>
            </dependency>
    

    2.java配置类

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
        @Bean
        public Docket createRestApi(){
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.xiong.mango.controller"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo(){
            return new ApiInfoBuilder().build();
        }
    }
    
    @Configuration
    public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    
        @Override
        protected void addResourceHandlers(ResourceHandlerRegistry registry) {
            /**
             * SpringBoot自动配置本身并不会把/swagger-ui.html
             * 这个路径映射到对应的目录META-INF/resources/下面
             * 采用WebMvcConfigurerAdapter将swagger的静态文件进行发布;
             */
            registry.addResourceHandler("swagger-ui.html")
                    .addResourceLocations("classpath:/META-INF/resources/");
    
            registry.addResourceHandler("/webjars/**")
                    .addResourceLocations("classpath:/META-INF/resources/webjars/");
            //将所有/static/** 访问都映射到classpath:/static/ 目录下
            registry.addResourceHandler("/static/**")
                    .addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX +"/static/");
            super.addResourceHandlers(registry);
        }
    }
    

    3.添加token

    正常情况下,项目里都会添加token,若是接口中有token信息,那么需要修改swagger配置,修改如下:

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
        @Bean
        public Docket createRestApi(){
            ParameterBuilder parameterBuilder = new ParameterBuilder();
            ArrayList<Parameter> parameters = new ArrayList<>();
            parameterBuilder.name("token").description("令牌").modelRef(new ModelRef("String"))
                                .parameterType("header").required(false).build();
            parameters.add(parameterBuilder.build());
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.xiong.mango.admin.controller"))
                    .paths(PathSelectors.any())
                    .build()
                    .globalOperationParameters(parameters);
        }
    
        private ApiInfo apiInfo(){
            return new ApiInfoBuilder().build();
        }
    }
    

    4.验证

    启动项目,访问http://ip:port/swagger-ui.html即可

    相关文章

      网友评论

          本文标题:springboot2.6集成swagger2

          本文链接:https://www.haomeiwen.com/subject/sseplrtx.html