首页 > 其他分享 >Swagger2与Knife4j集成(防踩坑)

Swagger2与Knife4j集成(防踩坑)

时间:2023-10-04 16:55:54浏览次数:26  
标签:集成 Knife4j Swagger2 html registry new swagger public resources

Swagger2与Knife4j

1 集成Springboot

1.1 依赖

       <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
       <dependency>
           <groupId>io.springfox</groupId>
           <artifactId>springfox-swagger2</artifactId>
           <version>2.9.2</version>
       </dependency>

       <dependency>
           <groupId>com.github.xiaoymin</groupId>
           <artifactId>knife4j-spring-boot-starter</artifactId>
           <!--在引用时请在maven中央仓库搜索2.X最新版本号-->
           <version>2.0.9</version>
       </dependency>

1.2 放开SpringSecurity资源管控

// 在SpringSecurity 中编写
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/v2/**",
                "/swagger-resources/**",
                "/swagger/**",
                "/webjars/**",
                "/swagger-ui.html"
                ).antMatchers(
                        // knife4j 相关
                "/doc.html",
                    "/v2/api-docs-ext/**"
                );
    }

1.3 配置 swagger knife4j 访问静态资源路径

@Configuration
public class SwaggerWebMvcConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

1.4 Swagger相关配置

@EnableSwagger2
@Configuration
@EnableKnife4j
@Profile({"dev"})
public class SwaggerConfig {
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo());
    }


    private ApiInfo apiInfo(){
        Contact contact = new Contact("沈自在。","https://www.tfirst.top","[email protected]");
        return new ApiInfo("Api Documentation",
                "药品管理系统",
                "1.0",
                "https://www.tfirst.top",
                contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());

    }

标签:集成,Knife4j,Swagger2,html,registry,new,swagger,public,resources
From: https://www.cnblogs.com/shenzizai/p/17742450.html

相关文章

  • django集成celery
    参考:https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html#django-first-steps这里只记录一些要注意的地方1、celery主文件importosfromceleryimportCelery#SetthedefaultDjangosettingsmoduleforthe'celery'program.#这个是导入djan......
  • VMware ESXi 7.0 U3o macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动
    VMwareESXi7.0U3omacOSUnlocker&OEMBIOS集成网卡驱动和NVMe驱动(集成驱动版)ESXi7U3标准版集成Intel网卡、RealtekUSB网卡和NVMe驱动请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-sysin/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.o......
  • CI/CD:实现持续集成与持续交付的完整指南
    ......
  • aws awswrangler 集成minio 简单试用
    awsawswrangler现在已经改名为aws-sdk-pandas,但是对于python使用的时候安装已经是使用awswrangler名称以下是一个简单的集成minio的测试,核心是配置环境变量,这个也比较符合aws对于相关资源的集成玩法环境准备docker-compose文件 version:'3'services......
  • SSM(Spring+SpringMVC+MyBatis)框架集成
    引言进行SSM(Spring+SpringMVC+MyBatis)集成的主要原因是为了提高开发效率和代码可维护性。SSM是一套非常流行的JavaWeb开发框架,它集成了Spring框架、SpringMVC框架和MyBatis框架,各自发挥优势,形成了一个完整的开发框架。首先,使用Spring框架可以实现组件的解耦和依赖注入,通过配置......
  • Spring与MyBatis框架集成
    引言尽管Spring本身提供了SpringJDBC作为对JDBC的抽象和简化,但与MyBatis集成可以提供更多的功能和灵活性。MyBatis是一款优秀的持久层框架,它通过XML或注解的方式将SQL语句与Java方法进行绑定,提供了更直观和便捷的方式来管理数据库操作。集成Spring和MyBatis可以发挥两者的优势,Sp......
  • 模拟集成电路设计系列博客——2.2.1 折叠Cascode放大器的基本结构
    2.2.1折叠Cascode放大器的基本结构许多现代CMOS集成电路放大器设计仅用于驱动容性负载。由于驱动的是容性负载,放大器并不需要通过一个电压缓冲器来获得较低的输出阻抗。因此相比那些必须要驱动阻性负载的放大器,更可能获得更快的速度和更大的信号摆幅。而这些增长仅仅需要通过在......
  • Python解释器和集成开发环境的安装及使用
    1.4.1安装前的注意事项1.Python版本选择Python语言使用者分为Python2和Python3两大阵营。两种版本在部分语法和标准库函数的用法上会有差别,两个版本相互是不兼容的。因此,读者首先需要确定需要使用的Python版本。2.操作系统位数(1)支持的内存不同:32位OS最多支持4GB内存,......
  • Golang的测试、基准测试和持续集成
    在Golang中,内置的垃圾回收器处理内存管理,自动执行内存分配和释放。单元测试是软件开发中至关重要的一个方面,它确保了代码的正确性并在开发过程中尽早发现错误。在Go中,编写有效的单元测试非常简单,并为开发人员提供了对其代码的信心。在本文中,我们将探讨在Go中编写单元测试的最佳实......
  • 最近正在集成SpringBoot与MyBatis-plus,体验感很好啊
    sqlCREATETABLE`class`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'编号',`name`varchar(30)DEFAULTNULLCOMMENT'班级名',`floor`int(3)DEFAULTNULLCOMMENT'楼层',`teacher_id`int(11)DEFAULTNULLCOMMENT'老师......