zoukankan      html  css  js  c++  java
  • springboot项目添加swagger2

    1.pom中添加swagger依赖

    <!-- swagger-ui -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
                <exclusions>
                    <exclusion>
                        <artifactId>javassist</artifactId>
                        <groupId>org.javassist</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
                <exclusions>
                    <exclusion>
                        <artifactId>javassist</artifactId>
                        <groupId>org.javassist</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
    

    2.编写配置类

    @Configuration
    @EnableSwagger2
    public class SwaggerConfiguration {
    
        @Bean
        public Docket createRestApi() {
            System.out.println("======  SWAGGER CONFIG  ======");
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo()).select()
                    .apis(RequestHandlerSelectors.basePackage("controller包的全路径名"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("xxxx RESTful APIs")
                    .description("快速上手,快速开发,快速交接")
                    .contact("xxxx")
                    .version("2.0.0")
                    .build();
        }
    
    }
    

    3.添加静态资源访问及权限拦截的放行(可选)

    /**
     * application configuration
     */
    @Configuration
    public class AppConfiguration implements WebMvcConfigurer {
    
      public static final String LOGIN_INTERCEPTOR_PATH_PATTERN = "/**/*";
      public static final String LOGIN_PATH_PATTERN = "/login";
      public static final String PATH_PATTERN = "/**";
      public static final String LOCALE_LANGUAGE_COOKIE = "language";
      public static final int COOKIE_MAX_AGE = 3600;
    
      @Bean
      public LoginHandlerInterceptor loginInterceptor() {
        return new LoginHandlerInterceptor();
      }
    
    
      /**
       * Cookie
       * @return local resolver
       */
      @Bean(name = "localeResolver")
      public LocaleResolver localeResolver() {
        CookieLocaleResolver localeResolver = new CookieLocaleResolver();
        localeResolver.setCookieName(LOCALE_LANGUAGE_COOKIE);
        /** set default locale **/
        localeResolver.setDefaultLocale(Locale.US);
        /** set cookie max age **/
        localeResolver.setCookieMaxAge(COOKIE_MAX_AGE);
        return localeResolver;
      }
    
      @Bean
      public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        /**  **/
        lci.setParamName("language");
    
        return lci;
      }
    
    
      @Override
      public void addInterceptors(InterceptorRegistry registry) {
        //i18n
        registry.addInterceptor(localeChangeInterceptor());
    
        registry.addInterceptor(loginInterceptor())
                .addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN)
                .excludePathPatterns(LOGIN_PATH_PATTERN,"/swagger-ui.html","/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**");
      }
    
    
      @Override
      public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("/ui/**").addResourceLocations("file:ui/");
        // 解决swagger无法访问
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
      }
    
      @Override
      public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/ui/").setViewName("forward:/ui/index.html");
        registry.addViewController("/").setViewName("forward:/ui/index.html");
      }
    
      @Override
      public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping(PATH_PATTERN).allowedOrigins("*").allowedMethods("*");
      }
    
    
      /**
       * Turn off suffix-based content negotiation
       *
       * @param configurer configurer
       */
      @Override
      public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
        configurer.favorPathExtension(false);
      }
    
    
    
    
    }
    
    
  • 相关阅读:
    [转]Nginx配置信息详解
    [转]浅谈Nginx负载均衡和F5的区别
    [转]MySQL中datetime和timestamp的区别及使用
    理解MyCat分库分表
    理解秒杀系统
    [转]设计模式之桥接模式
    [转]MySQL查询语句执行过程详解
    两步完美解决 androud 模拟器太慢的问题
    android hook 框架 xposed 如何实现挂钩
    android hook 框架 xposed 如何实现注入
  • 原文地址:https://www.cnblogs.com/PythonOrg/p/13600410.html
Copyright © 2011-2022 走看看