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);
      }
    
    
    
    
    }
    
    
  • 相关阅读:
    Linux Sever简单笔记(第十二堂课)之linux下的系统故障分析和排查
    Linux Sever简单笔记(第十一堂课)之linux下的备份和恢复及rsync还有inotify和dump以及restore
    Linux Sever简单笔记(第十堂课)之linux下的任务计划及相关的命令
    ubuntu18.04设置apt源(国内)
    shell简单常用脚本实例
    装完ubuntu系统之后,不能ssh正常连接
    mysql主从复制以及读写分离
    复习计划
    linux下dhcp的安装及配置
    日常问题
  • 原文地址:https://www.cnblogs.com/PythonOrg/p/13600410.html
Copyright © 2011-2022 走看看