跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)

Revin

首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • Spring Data JPA
  • MyBatis

  • Spring

  • SpringBoot

  • Jdk

  • Tomcat

  • Netty

  • 若依

    • 源码分析

      • 项目概述
      • 项目运行
      • 构建发布到Linux
      • 系统菜单介绍
      • 开发环境运行
      • 表结构介绍
      • 目录文件介绍
      • 主配置文件介绍
      • SpringBoot简介
      • SpringSecurity简介
      • SpringSecurity配置介绍
      • SpringSecurity密码加密
      • SpringSecurity退出配置
      • SpringSecurity登录配置
      • SpringSecurity权限讲解
      • SpringSecurity权限注解
      • JWT介绍
      • JWT实现
      • JWT过滤器
      • Mybatis配置详解
      • Mybatis使用方式
      • 分页配置详解
      • 分页插件使用
      • 分页代码详解
      • 数据源配置详解
      • 数据源代码详解
      • 多数据源使用
      • 28 新增多数据源(相同数据库)
      • 新增多数据源(不同数据库)
      • 多数据源代码详解
      • 事务简介
      • 事务使用
      • 登录日志
      • 操作日志详解
      • 操作日志实现
      • 数据权限使用详解
      • 数据权限代码详解
      • 数据权限业务实现
      • 代码生成使用(单表)
      • 40 代码生成使用(树表)
      • 代码生成实现详解
      • 定时任务使用详解
      • 定时任务代码详解
      • 服务监控讲解
      • Swagger系统接口使用详解
      • 系统接口实现详解
      • XSS脚本过滤详解
      • 防止重复提交过滤详解
      • 全局异常处理器
      • 框架验证详解
      • 日志配置详解
      • 上传详解
      • 下载详解
      • 前端-前端框架介绍
      • 前端-package.json详解
      • 前端-vue.config.js详解
      • main.js详解
      • 前端-布局设置
      • 导航栏
      • 前端-侧边栏
      • 前端-顶部栏
      • scoped作用域
      • 前端-scoped样式穿透
      • 前端-路由跳转的两种方式
      • 前端-动态路由的跳转方式
      • 前端-开发规范&流程
      • 前端-请求流程
      • 前端-组件使用-引入外部依赖
      • 前端-组件使用-注册组件
      • 前端-组件使用-组件通信
      • 前端-页面权限
      • 前端-多级目录
      • 前端-页签缓存
      • 前端-使用图标
      • 前端-使用字典(dicts方式)
      • 前端-使用参数
      • Postman测试接口
      • 代码单元测试
      • 开发文档介绍和部署
      • 集成Oauth2.0
      • 构建发布到Tomcat
      • 新建业务模块(多模块)
      • 开发自己的业务(多模块)
      • 前端-文件上传
      • 前端-文件下载
      • 前端-配置后端接口地址或域名
      • 前端-部署应用到子路径
      • 禁止多终端同时登录实现
      • 静态资源整合到后端访问
      • 使用加密方式传输登录密码
      • 多数据源事务的一致性
      • 主子表代码生成详解
      • 3.4.0版本更新介绍
      • 使用undertow容器
      • 集成actuator实现优雅关闭应用
      • 集成knife4j实现swagger文档增强
      • 集成easyexcel实现excel表格增强
      • 集成mybatis-plus实现mybatis增强
      • 集成ip2region实现离线IP地址定位
      • 集成druid实现数据库密码加密
      • 集成aj-captcha实现滑块验证码
      • 集成sharding-jdbc实现分库分表
      • v3.5.0版本更新介绍
      • 使用docker实现一键部署
      • v3.6.0版本更新介绍
      • 限流控制详解
      • v3.7.0版本更新介绍
      • v3.8.0版本更新介绍
        • v3.8.1版本更新介绍
        • SSO
        • 绑定使用二级域名
        • 验证码源码解析
        • 资料
      • 源码分析
      • Ruoyi-Flowable
    • Traefik

    • Openresty

    • 开源框架
    • 若依
    • 源码分析
    Revin
    2023-10-29
    目录

    v3.8.0版本更新介绍

    # 新增配套并同步的Vue3前端版本

    https://github.com/yangzongzhuan/RuoYi-Vue3

    # 新增通用方法简化模态/缓存/下载/权限/页签使用

    ruoyi-ui/src/plugins/index.js

    export default {
      install(Vue) {
        // 页签操作
        Vue.prototype.$tab = tab
        // 认证对象
        Vue.prototype.$auth = auth
        // 缓存对象
        Vue.prototype.$cache = cache
        // 模态框对象
        Vue.prototype.$modal = modal
        // 下载文件
        Vue.prototype.$download = download
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    如何使用:前端手册-》通用方法 (opens new window)

    • $tab对象用于做页签操作、刷新页签、关闭页签、打开页签、修改页签等,

    • $modal对象用于做消息提示、通知提示、对话框提醒、二次确认、遮罩

    • $auth对象用于验证用户是否拥有某(些)权限或角色

    • $cache对象用于处理缓存

    • $download对象用于文件下载

      • ruoyi-ui/src/utils/request.js 通用下载方法

      • // 通用下载方法
        export function download(url, params, filename, config) {
          downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
          return service.post(url, params, {
            transformRequest: [(params) => { return tansParams(params) }],
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
            responseType: 'blob',
            ...config
          }).then(async (data) => {
            const isBlob = blobValidate(data);
            if (isBlob) {
              const blob = new Blob([data])
              saveAs(blob, filename)
            } else {
              const resText = await data.text();
              const rspObj = JSON.parse(resText);
              const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
              Message.error(errMsg);
            }
            downloadLoadingInstance.close();
          }).catch((r) => {
            console.error(r)
            Message.error('下载文件出现错误,请联系管理员!')
            downloadLoadingInstance.close();
          })
        }
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26

    # Excel注解支持自定义数据处理器

    官方文档-》导入导入-》自定义数据处理器 (opens new window)

    # Excel注解支持导入导出标题信息

    官方文档-》导入导入-》自定义标题信息 (opens new window)

    # Excel导入支持@Excels注解

    ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

    /** 部门对象 */
    @Excels({
        @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
        @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
    })
    private SysDept dept;
    
    1
    2
    3
    4
    5
    6

    type字段:支持导入和导出的时候。 字段类型(0:导出导入;1:仅导出;2:仅导入)

    # 新增组件data-dict,简化数据字典使用

    77章节

    # 生产环境使用路由懒加载提升页面响应速度

    ruoyi-ui/src/store/modules/permission.js

    export const loadView = (view) => {
      if (process.env.NODE_ENV === 'development') {
        return (resolve) => require([`@/views/${view}`], resolve)
      } else {
        // 使用 import 实现生产环境的路由懒加载
        return () => import(`@/views/${view}`)
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

    点击以后才会加载页面,而不是一次性加载所有页面的js。

    # 日志注解新增是否保存响应参数

    ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java

    /**
     * 是否保存响应的参数
     */
    public boolean isSaveResponseData() default true;
    
    1
    2
    3
    4

    使用注解的时候加上参数即可

    @Log(title = "任务调度日志", businessType = BusinessType.EXPORT, isSaveResponseData=false)
    
    1

    # 任务屏蔽违规字符&参数忽略双引号中的逗号

    com/ruoyi/quartz/controller/SysJobController.java:101

    else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR))
    
    1
     /**
         * 定时任务违规的字符
         */
        public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
                "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" };
    
    1
    2
    3
    4
    5

    com/ruoyi/quartz/util/JobInvokeUtil.java:113

    String[] methodParams = methodStr.split(",(?=([^\"']*[\"'][^\"']*[\"'])*[^\"']*$)");
    
    1

    现在是一个正则

    # 优化mybatis全局默认的执行器

    ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml

        <!-- 全局参数 -->
        <settings>
            <!-- 使全局的映射器启用或禁用缓存 -->
            <setting name="cacheEnabled"             value="true"   />
            <!-- 允许JDBC 支持自动生成主键 -->
            <setting name="useGeneratedKeys"         value="true"   />
            <!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
            <setting name="defaultExecutorType"      value="SIMPLE" />
    		<!-- 指定 MyBatis 所用日志的具体实现 -->
            <setting name="logImpl"                  value="SLF4J"  />
            <!-- 使用驼峰命名法转换字段 -->
    		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
    	</settings>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    改为了SIMPLE

    # 修复swagger没有指定dataTypeClass导致启动出现warn日志

    示例com/ruoyi/web/controller/tool/TestController.java:50

    @ApiImplicitParam中dataTypeClass

     @ApiOperation("获取用户详细")
    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
    @GetMapping("/{userId}")
    public R<UserEntity> getUser(@PathVariable Integer userId)
    {}
    
    1
    2
    3
    4
    5
    上次更新: 2025/04/03, 11:07:08
    v3.7.0版本更新介绍
    v3.8.1版本更新介绍

    ← v3.7.0版本更新介绍 v3.8.1版本更新介绍→

    最近更新
    01
    tailwindcss
    03-26
    02
    PaddleSpeech
    02-18
    03
    whisper
    02-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 跨境互联网 | 豫ICP备14016603号-5 | 豫公网安备41090002410995号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式