[Open Source] Licensed under the MIT open-source license. A rapid development platform that is completely free to use without any restrictions.
![[Open Source] Licensed under the MIT open-source license. A rapid development platform that is completely free to use without any restrictions.](https://yy123.ink/api/img/1782594323611-okosma.jpg)
1. Project Overview

Ruoyi-Flex
Ruoyi-Flex is a faster Java development framework for the next 8 years, based on JDK21 and Spring Boot V3.2.X+, with a decoupled frontend and backend architecture.
Ruoyi-Flex is a fully open-source rapid development platform comprehensively upgraded for distributed cluster and multi-tenant scenarios. Licensed under the MIT License, it is freely available to individuals and enterprises without restrictions. Based on RuoYi-Vue and RuoYi-Vue-Plus, it integrates excellent open-source technologies including MyBatis-Flex, JDK21, SpringBootV3.2.X+, Lombok, Sa-Token, SpringDoc, Hutool, SpringBoot Admin, PowerJob, Vue3, Element-Plus, and MinIO. It supports open-source databases such as PostgreSQL and MySQL, as well as their derivative distributed database systems.
2. Open Source License
Licensed under MIT
3. Screenshots
Demonstration Picture
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
4. Feature Overview
System Features
Ruoyi-Flex follows the philosophy of writing less code, achieving better performance, reducing errors, improving communication, and enabling faster onboarding, delivering comprehensive improvements and capabilities:
(1) Write Less Code
With MyBatis-Flex, Ruoyi-Flex significantly reduces the amount of code that developers need to write, achieving a reduction of up to 25.85%. Refer to the source code comparison and analysis of the same functionality in the demo programs under the Demo Module (excluding controllers and frontend code with identical code volume):

Except for statistical reports in complex legacy projects, Ruoyi-Flex generally does not require manually writing SQL statements.
(2) Better Performance
In addition to the performance improvements provided by the integrated JDK21, SpringBootV3.2, and MyBatis-Flex, the code generated by the system's Code Generation module uses a different approach for multi-table queries involving the backend database. Instead of database-level SQL operations such as LeftJoin and InnerJoin, it uses WithRelation programmatic assembly to replace database LeftJoin SQL joins. The database does not need to maintain foreign key relationships between tables. Multi-table join SQL statements are broken down into primary key queries against individual tables, eliminating SQL joins and improving performance by up to 10 times.
(3) Fewer Errors
Previously, when developing with MyBatis, SQL statements had to be written manually. In the later stages of development, adding fields required modifying XML files, which was a nightmare. It was easy to make mistakes with even the slightest oversight. Ruoyi-Flex avoids this problem effectively by leveraging MyBatis-Flex. If a field name is entered incorrectly, IDEA in the development environment automatically highlights it in red and displays a warning, helping prevent mistakes.
(4) Smooth Communication
"Those who are not of our kind are bound to have different intentions." Ruoyi-Flex integrates a wide range of domestic open-source software, including MyBatis-Flex, Sa-Token, Hutool, PowerJob, and Element-Plus. Since they share common origins and ecosystems, communication is naturally smoother. When developers encounter problems, they can contact the author and get them resolved quickly. For example, when learning security frameworks in the same domain, a Chinese developer can learn Sa-Token and start using it in just half a day. However, learning Spring Security might take seven days or even longer.
(5) Multi-Frontend Synchronization
Ruoyi-Flex provides a "1+3" architecture: one backend and three frontends. Developers familiar with JS can use the flex-elementplus-ui frontend; those familiar with TS can use the ruoyiflex-elementplus-ts frontend; and those familiar with both TS and Ant Design can use the ruoyiflex-antdesign-vben frontend. There is always a frontend option that suits your needs!
(6) Quick to Get Started
Ruoyi-Flex integrates various open-source development frameworks, eliminating technical barriers so you can start working right away. Users only need to design the database table structure. The system can then visually generate local frontend and backend code. You can choose from single-table, tree-table, or parent-child table structures. A module can be developed in just 10 minutes, making it easy to get started and highly efficient for development.
Built-in functions
-
Tenant Management: Manage tenants within the system, including tenant packages, expiration dates, user limits, company information, and more.
-
Tenant Package Management: Manage the packages available to tenants within the system, including the menus and other features included in each package.
-
Client Management: Manage all clients integrated with the system, such as PC clients and mini-program clients. Supports dynamic login authorization methods, including SMS login and password login, as well as dynamic control over token validity periods.
-
User Management: Users are system operators, this function mainly completes system user configuration.
-
Department Management: Configuring system organizational structures (companies, departments, teams), tree structure presentation supports data permissions.
-
Position Management: Configure system users' positions.
-
Menu Management: Configure system menus, operation permissions, button permissions, etc.
-
Role Management: Role menu permission distribution, set role data range permissions by organization.
-
Dictionary Management: Maintain some fixed data frequently used in the system.
-
Parameter Management: Dynamically configure common parameters in the system.
-
Notification Announcement: System notification and announcement information release and maintenance.
-
Operation Log: Record and query system normal operation logs; record and query system abnormal information logs.
-
Login Log: Record and query system login logs, including login exceptions.
-
File Management: Integrates cloud storage services to store files on OSS servers such as MinIO, Qiniu, Alibaba Cloud, and Tencent Cloud. Supports file uploads and downloads.
-
Online Users: Monitor the status of active users in the system.
-
Scheduling Center: Integrates PowerJob, a new-generation distributed task scheduling and computing framework.
-
Code Generation: Generates frontend and backend code (Java, HTML, Vue, JS). Supports single-table, tree-table, and parent-child table structures, reducing development workload by more than 70%.
-
System APIs: Integrates SpringDoc to automatically generate API documentation based on documentation comments.
-
Monitoring Center: Integrates Spring Boot Admin to monitor cluster system resources and status, including CPU, memory, disk, stack, online logs, and Spring-related configurations.
-
Cache Monitoring: Query and statistics of system cache information, command statistics, etc.
-
Backend Database: Supports open-source databases such as PostgreSQL and MySQL, as well as their distributed database derivatives.
-
Demo Modules: Provides demonstration programs for single-table, tree-table, and parent-child table structures, with code examples in both MyBatis and MyBatis-Flex formats.
-
Implements multi-tenancy.
-
Implements optimistic locking.
-
Implements logical deletion.
-
Enables Java 21 virtual threads and generational ZGC.
-
Implements API interface encryption, with passwords transmitted in encrypted form.
5. Tech Stack
Ruoyi-Flex is a rapid development framework based on the Spring Boot V3 platform. It integrates excellent open-source software and technologies, including JDK 21, Spring Boot V3.2.X+, MyBatis-Flex, Lombok, Sa-Token, SpringDoc, Hutool, Spring Boot Admin, PowerJob, Vue 3, Element-Plus, AntDesign-Vben, and MinIO. It is designed to serve as the foundation for software development over the next eight years.
Local Development Environment
Environment Requirements
|
Project |
Recommended version |
Description |
|
JDK |
21.0.1+ |
JAVA environment dependency (need to configure environment variables) |
|
Spring Boot |
3.2.1+ |
Spring Environment |
|
Maven |
Version 3.9.3 or later |
Project build (need to configure environment variables) |
|
IDEA |
IDEA 2023.3 or later |
Integrated Development Tools |
|
Redis |
Version 5 or later |
Cache |
|
MySQL |
8.0.x+ |
Choose any one database (default for Ruoyi-Flex V4.1.X) |
|
PostgreSQL |
15+ |
Choose any one database (default for Ruoyi-Flex V4.2.X) |
Front-end project
Ruoyi-Flex uses separate repositories for the frontend and backend. This project contains the Java backend. Currently, there are three frontend projects:
(1)ruoyiflex-elementplus-ts
Built with Element Plus and TypeScript. Project: ruoyiflex-elementplus-ts
(2)ruoyiflex-antdesign-vben
Built with Ant Design, Vben, and TypeScript. Project: ruoyiflex-antdesign-vben
(3)flex-elementplus-ui
Built with Element Plus and JS. Project: flex-elementplus-ui









