项目中集成

简介: 若依框架在zzyl-admin模块集成Swagger,通过SwaggerConfig配置类实现。核心包括启用控制、API信息定制及安全模式设置,支持注解扫描生成接口文档,可通过http://localhost:8080/swagger-ui/index.html访问。

目前若依框架(在zzyl-admin模块)已经集成了swagger,核心配置有如下几个:

  1. 关键依赖

  2. 核心配置类
    a. 位置:com.ruoyi.web.core.config.SwaggerConfig
    b. 请设计prompt提示词,来阅读以下代码
    package com.ruoyi.web.core.config;

import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.ruoyi.common.config.RuoYiConfig;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.AuthorizationScope;
import springfox.documentation.service.Contact;
import springfox.documentation.service.SecurityReference;
import springfox.documentation.service.SecurityScheme;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;

/**

  • Swagger2的接口配置
  • @author ruoyi
    /
    @Configuration
    public class SwaggerConfig
    {
    /** 系统基础配置
    /
    @Autowired
    private RuoYiConfig ruoyiConfig;

    /* 是否开启swagger /
    @Value("${swagger.enabled}")
    private boolean enabled;

    /* 设置请求的统一前缀 /
    @Value("${swagger.pathMapping}")
    private String pathMapping;

    /**

    • 创建API
      /
      @Bean
      public Docket createRestApi()
      {
      return new Docket(DocumentationType.OAS_30)
      // 是否启用Swagger
      .enable(enabled)
      // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
      .apiInfo(apiInfo())
      // 设置哪些接口暴露给Swagger展示
      .select()
      // 扫描所有有注解的api,用这种方式更灵活
      .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
      // 扫描指定包中的swagger注解
      // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
      // 扫描所有 .apis(RequestHandlerSelectors.any())
      .paths(PathSelectors.any())
      .build()
      /
      设置安全模式,swagger可以设置访问token */
      .securitySchemes(securitySchemes())
      .securityContexts(securityContexts())
      .pathMapping(pathMapping);
      }

      /**

    • 安全模式,这里指定token通过Authorization头请求头传递
      */
      private List securitySchemes()
      {
      List apiKeyList = new ArrayList();
      apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
      return apiKeyList;
      }

      /**

    • 安全上下文
      */
      private List securityContexts()
      {
      List securityContexts = new ArrayList<>();
      securityContexts.add(

       SecurityContext.builder()
       .securityReferences(defaultAuth())
       .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
                   .build());
      

      return securityContexts;
      }

      /**

    • 默认的安全上引用
      */
      private List defaultAuth()
      {
      AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
      AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
      authorizationScopes[0] = authorizationScope;
      List securityReferences = new ArrayList<>();
      securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
      return securityReferences;
      }

      /**

    • 添加摘要信息
      */
      private ApiInfo apiInfo()
      {
      // 用ApiInfoBuilder进行定制
      return new ApiInfoBuilder()
           // 设置标题
           .title("标题:若依管理系统_接口文档")
           // 描述
           .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
           // 作者信息
           .contact(new Contact(ruoyiConfig.getName(), null, null))
           // 版本
           .version("版本号:" + ruoyiConfig.getVersion())
           .build();
      
      }
      }
      1. 访问地址
        a. 方式一:系统内部访问

    b. 方式二:服务地址+/swagger-ui/index.html --- > http://localhost:8080/swagger-ui/index.html

相关文章
|
设计模式 数据可视化 Java
JD-GUI和JAD对War包和Jar包进行反编译教学
JD-GUI和JAD是两个用于反编译Java字节码的工具。代码调试:当你需要调试Java代码时,可以使用JD-GUI将Java类反编译为可读的源代码,以便进行调试和分析。代码分析:如果你需要对Java类进行深入的分析,例如了解代码结构、方法调用关系等,可以使用JD-GUI来反编译Java类,并查看反编译后的源代码。代码重构:如果你需要修改现有的Java类,可以使用JD-GUI将Java类反编译为可读的源代码,然后进行修改。注意,反编译后的源代码可能不完全与原始源代码相同,因此在进行修改时需要谨慎。
1318 1
|
3月前
|
NoSQL MongoDB Windows
2-MongoDB单机部署
本文介绍MongoDB在Windows系统的安装与启动方法,包括下载32/64位安装包、解压配置、数据目录创建,并详述命令行和配置文件两种启动方式。强调选择稳定版版本(y为偶数),设置dbPath、日志路径及端口等参数,解决YAML配置中转义字符与Tab缩进问题,确保顺利部署运行。
|
3月前
|
存储 NoSQL Linux
2.4 Linux系统中的安装启动和连接
本文介绍在Linux系统部署单机MongoDB用于生产环境的完整步骤,包括下载、解压、目录配置、日志与数据路径设置、配置文件编写及服务启停方法。操作类似Windows,通过配置`mongod.conf`实现后台运行,支持命令行与图形工具连接,并提供防火墙处理与安全关闭服务方案,确保稳定运行。
|
NoSQL Redis 数据安全/隐私保护
若依框架----token权限控制逻辑
若依框架----token权限控制逻辑
1838 0
|
3月前
|
XML Java 数据格式
Spring @Configuration 注解详解:用 Java 代码替代 XML 配置
`@Configuration` 是 Spring 实现 Java 配置的核心注解,替代传统 XML,通过 `@Bean` 注册 Bean,结合 `@Import`、`@ComponentScan` 等实现类型安全、可维护的配置方式,推动 Spring 应用现代化。
|
2月前
|
NoSQL Java API
【RuoYi-SpringBoot3-Pro】:Magic API 低代码开发
RuoYi-SpringBoot3-Pro 集成 Magic API,实现低代码快速开发。通过 Web 界面编写脚本,无需编写 Controller、Service 等代码,支持实时生效、数据库操作、多数据源、权限校验与 Redis 缓存,助力高效构建 RESTful 接口,适用于原型开发、报表查询等场景。
716 0
|
2月前
|
SQL 人工智能 Java
【RuoYi-SpringBoot3-Pro】:多租户功能上手指南
RuoYi-SpringBoot3-Pro集成MyBatis-Plus多租户插件,自动注入tenant_id过滤条件,实现数据隔离。通过简单配置即可开启多租户,支持系统表免隔离、超级管理员跨租户查看,提升SaaS开发效率。结合AI建表工具,快速完成数据库初始化。
291 7
|
2月前
|
安全 测试技术 网络安全
2026年移动应用渗透测试流程方案及iOS与Android框架对比
文章聚焦2026年移动应用渗透测试,介绍其涵盖信息收集等关键环节且将更重自动化与AI辅助,对比iOS与Android因系统差异在框架上的显著区别。还阐述主流测试方案及优劣势,给出企业实施的最佳实践与落地路径,解答常见问题,助力企业应对安全挑战。
|
7月前
|
SQL XML Java
MyBatis框架如何处理字符串相等的判断条件。
总的来说,MyBatis框架提供了灵活而强大的机制来处理SQL语句中的字符串相等判断条件。无论是简单的等值判断,还是复杂的条件逻辑,MyBatis都能通过其标签和属性来实现,使得动态SQL的编写既安全又高效。
606 0
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
652 5