Skip to content

框架代码说明

本章节详细阐述 JavaFreeCloud2025 框架的代码结构与核心组件,涵盖后端模块化工程设计与前端 Vue3 项目架构。通过清晰的目录结构、模块功能说明及依赖关系解析,帮助开发者快速理解项目组成,掌握各模块的职责与协作方式,为后续开发与集成奠定基础。

后端代码工程

本节深入解析 JavaFreeCloud2025 后端的模块化设计。通过展示完整的工程目录结构、详述各模块的核心功能与类型,并阐明模块间的依赖与编译顺序,呈现一个高内聚、低耦合、易于维护和扩展的现代化 Java 微服务架构体系。

工程目录结构

JavaFreeCloud2025 的后端工程采用了模块化设计,每个子模块专注于特定的功能领域,确保整个系统具有良好的模块化和可维护性。以下是项目的整体目录结构:

javafree-cloud-parent (pom)						# Maven 父项目,统一管理和控制子模块的依赖版本
├── javafree-cloud-dependencies (pom)           # 统一依赖版本管理
├── javafree-cloud-core (pom)                   # 核心模块聚合
│   ├── javafree-cloud-common                   # 公共工具与常量
│   ├── javafree-cloud-data                     # 数据访问层(JPA)
│   ├── javafree-cloud-service                  # 业务逻辑层
│   ├── javafree-cloud-restful                  # REST 接口层
│   ├── javafree-cloud-springdoc                # API 文档(OpenAPI)
│   └── javafree-cloud-auth                     # 认证授权中心
├── javafree-cloud-cache                        # 二级缓存 Starter 
├── javafree-cloud-accesslog                    # 访问日志记录模块
├── javafree-jwt-client-sdk                     # 框架JWT解析客户端工具包,用于验证和解析由身份认证中心签发的JWT Token
├── javafree-cloud-api-sdk                      # JavaFree openfeign接口调用客户端,方便其他系统调用JavaFree平台接口
├── javafree-spring-boot-starter                # 框架一站式依赖。spring boot工程加此依赖项,即可启用所有核心模块
├── javafree-spring-cloud-starter               # 框架一站式依赖。spring cloud工程加此依赖项,即可启用所有核心模块
├── javafree-modules                            # 框架扩展功能模块集合
│   ├── javafree-cloud-ai                       # 框架 AI 模块, 集成通用AI开放平台 
│   ├── javafree-cloud-workflow                 # 框架工作流平台模块,提供工作引擎服务及流程模型管理功能
├── RsaKeyGenTool                               # RSA 密钥生成工具(独立工具)
├── javafree-springboot-server                  # 框架 Spring Boot 单体工程示例(独立可运行服务)
├── javafree-springcloud-server                 # 框架 Spring Cloud 微服务示例工程(独立可运行服务)
├── javafree-springboot-starter-demo            # 使用java-free-spring-boot-starter快速创建Spring Boot应用示例工程
└── javafree-springcloud-starter-demo           # 使用java-free-spring-cloud-starter创建Spring Cloud应用示例工程

工程模块介绍

以下是对后端工程中各模块的详细功能说明,旨在阐明每个模块的定位、类型及其在整体架构中扮演的角色,为开发者提供清晰的模块使用指南。

javafree-cloud-parent (pom)

类型:Maven 父项目 • 功能:作为整个框架的顶层父模块,统一管理和控制所有子模块的依赖版本、插件配置和其他全局设置。通过继承机制,确保所有子模块遵循一致的技术规范和依赖版本,提升项目整体的可维护性和稳定性。

javafree-cloud-dependencies (pom)

类型:依赖版本管理中心 • 功能:集中定义项目中使用的所有第三方库的版本号。其他模块在引入这些库时无需指定版本号,由该模块统一控制,避免版本冲突,并便于统一升级和维护。

javafree-cloud-core (pom)

类型:核心模块聚合工程 • 功能:作为核心功能模块的聚合容器,将多个基础组件模块进行逻辑分组和统一构建。本身不包含具体代码,仅用于组织和管理以下子模块的生命周期:

  • javafree-cloud-common:提供通用工具类、常量定义、全局异常处理、响应封装(Result)、枚举、基础实体类等公共组件。
  • javafree-cloud-data:数据访问层,基于 JPA 或 MyBatis-Plus 实现数据库操作,封装通用 DAO 接口与实体映射。
  • javafree-cloud-service:业务逻辑层,封装核心业务流程,协调数据访问与服务调用。
  • javafree-cloud-restful:REST 接口层,暴露 HTTP API 供前端或其他服务调用,集成控制器(Controller)、参数校验、请求日志等。
  • javafree-cloud-springdoc:基于 SpringDoc(OpenAPI 3)实现 API 文档自动生成,支持 Swagger UI 可视化界面。
  • javafree-cloud-auth:认证与授权中心,集成 JWT、OAuth2 或自研安全框架,实现用户登录、权限校验、Token 管理等功能。

javafree-cloud-cache

类型:Starter 模块 • 功能:对 Spring Cache 进行扩展,支持本地缓存(如 Caffeine)与远程缓存(如 Redis)的集成,提供二级缓存解决方案。

javafree-cloud-accesslog

类型:日志记录模块 • 功能:自动记录 HTTP 请求的访问日志,包括请求路径、参数、响应时间、用户信息、IP 地址等,支持输出到数据库或Elasticsearch 系统。并提供日志的查询、展示、定时清理等功能。

RsaKeyGenTool

类型:独立工具类应用 • 功能:RSA 密钥生成工具,用于生成公钥/私钥对,支持 PEM、PKCS8 等格式输出。

javafree-springboot-server

类型:单体应用示例 • 功能:基于 Spring Boot 构建的完整单体服务,集成 Web 接口、数据库访问、缓存、日志、安全认证等核心能力,内嵌 Tomcat 支持快速启动与部署。

javafree-springcloud-server

类型:微服务示例工程 • 功能:基于 Spring Cloud Alibaba 的完整微服务应用示例,集成服务注册(Nacos)、配置中心、网关路由、熔断限流(Sentinel)、链路追踪(SkyWalking)等云原生能力。

javafree-spring-boot-starter

类型:Spring Boot 启动器(Starter) • 功能:框架核心一站式依赖组件。在 Spring Boot 项目中引入该依赖后,可自动集成日志、安全、缓存、监控、通用工具等基础能力,实现开箱即用,简化项目初始化配置。

javafree-spring-cloud-starter

类型:Spring Cloud 启动器(Starter) • 功能:面向微服务架构的一站式依赖组件。基于 Spring Cloud 生态封装,集成服务注册与发现、配置管理、负载均衡、远程调用等核心能力,助力 Spring 工程快速接入云原生体系。

javafree-modules

类型:功能模块集合(Module Aggregator) • 功能:框架的可扩展功能模块总集,采用插件化设计,支持按需引入。包含 AI 智能、工作流引擎等高级功能模块,便于构建企业级复杂业务系统。

javafree-cloud-ai

类型:AI 扩展模块 • 功能:框架的 AI 能力集成模块,封装通用 AI 开放平台(如 OpenAI、通义千问、文心一言等)的统一调用接口,支持文本生成、语义理解、智能问答等场景,降低 AI 接入门槛。

javafree-cloud-workflow

类型:工作流引擎模块 • 功能:提供完整的工作流平台能力,集成流程引擎服务与可视化流程模型管理功能,支持 BPMN 标准,适用于审批流、任务调度、业务流程自动化等企业级应用场景。

javafree-springboot-starter-demo

类型:Spring Boot Starter 使用示例 • 功能:演示如何通过引入 javafree-spring-boot-starter 依赖,快速搭建一个具备 JavaFreeCloud2025 框架核心功能的 Spring Boot 应用。该示例工程展示了 Starter 的集成方式、配置方法和基本使用场景,是开发者快速上手框架的参考模板。

javafree-springcloud-starter-demo

类型:Spring Cloud Starter 使用示例 • 功能:演示如何通过引入 javafree-spring-cloud-starter 依赖,快速构建一个基于 JavaFreeCloud2025 的 Spring Cloud 微服务应用。该示例工程完整展示了微服务架构下的服务注册、配置管理、远程调用等流程,为开发者提供了从零开始构建微服务的标准化范例。

💡 使用建议

  • 单体应用优先引入 javafree-spring-boot-starter
  • 微服务架构推荐使用 javafree-spring-cloud-starter示例工程
  • 高阶功能按需启用 javafree-cloud-aijavafree-cloud-workflow 模块

模块依赖关系

JavaFreeCloud2025 后端模块之间的依赖关系如下:

依赖关系图:各个工程之间依赖关系

  1. javafree-cloud-parent 是所有模块的父 POM,提供了全局的配置和依赖管理。
  2. javafree-cloud-dependencies 作为依赖管理模块,用于统一管理所有子模块的依赖版本。
  3. javafree-cloud-cache 为缓存模块,它们可以独立于核心模块使用,也可以集成到核心模块中。
  4. javafree-cloud-core 聚合了多个核心模块,如 javafree-cloud-common, javafree-cloud-data, javafree-cloud-service, javafree-cloud-restful, javafree-cloud-springdoc, 和 javafree-cloud-auth,它们之间存在相互依赖关系,共同构成系统的业务逻辑层。
  5. **javafree-cloud-accesslog**访问日志模块,它是插件式功能模块,可以集成到应用项目中使用。
  6. javafree-springboot-serverjavafree-springcloud-server 是两个独立的应用示例,分别展示了如何基于 JavaFreeCloud2025 快速搭建单体应用和微服务架构。

模块编译顺序

为了确保模块间的依赖关系正确解析并顺利编译,模块的编译顺序如下:

编译顺序:各个工程编译顺序

  1. javafree-cloud-dependencies:首先编译父工程模块。
  2. javafree-cloud-dependencies:编译依赖管理模块,因为它定义了所有子模块使用的依赖版本。
  3. javafree-cloud-cache :这个模块相对独立,没有依赖,可以先编译,以被后面模块引用。
  4. javafree-cloud-core :这个模块是pom工程模块,是其子的父模块,所以要先编译。
  5. javafree-cloud-springdoc:引入springdoc及相关配置,只依赖javafree-cloud-core pom工程,后面会被其他模块引用,所以先编译。
  6. javafree-cloud-common:作为最基础的工具类模块,应在其他核心模块之前编译。
  7. javafree-cloud-data:依赖于 javafree-cloud-common,因此在其之后编译。
  8. javafree-cloud-service:依赖于 javafree-cloud-datajavafree-cloud-common,应在它们之后编译。
  9. javafree-cloud-restful:依赖于 javafree-cloud-servicejavafree-cloud-common,应在它们之后编译。
  10. javafree-cloud-auth:依赖于 javafree-cloud-commonjavafree-cloud-restful,应在它们之后编译。
  11. javafree-cloud-accesslog:这个模块相对独立,可以在上述核心模块编译完成后编译。
  12. javafree-springboot-serverjavafree-springcloud-server:最后编译这两个独立的应用示例,它们可能依赖于所有核心模块。

通过这种模块化的结构和明确的编译顺序,JavaFreeCloud2025 确保了系统的高内聚、低耦合以及易于维护的特点。

前端Vue3代码工程

本节介绍基于 JavaFree Web 基于TDesign 和ElementPlus 构建的前端项目结构。通过解析根目录与 src 源码目录的层级设计,说明关键模块的职责,并概述环境变量的配置方式,帮助前端开发者快速熟悉项目架构,高效开展业务开发。

项目整体结构

项目初始化后,根目录结构如下所示:

.
├── README.md                         # 项目说明文档
├── index.html                        # 应用入口 HTML 文件
├── docs                              # 项目文档目录
├── mock                              # 本地 Mock 数据服务
│     └── index.ts
├── package.json                      # 项目依赖与脚本配置
├── package-lock.json                 # 依赖版本锁定文件
├── node_modules                      # 第三方依赖包
├── public                            # 静态资源目录(不经过构建处理)
│     └── favicon.ico
├── src                               # 核心源码目录
├── .env                              # 生产环境变量配置
├── .env.development                  # 开发环境变量配置
├── .env.test                         # 测试环境变量配置
├── commitlint.config.js              # Git Commit 提交规范配置
├── tsconfig.json                     # TypeScript 编译配置
└── vite.config.js                    # Vite 构建工具配置文件

核心源码结构(src)

src 目录是项目的核心开发区域,遵循 TDesign 推荐的分层架构设计,结构清晰,职责分明。其目录结构如下:

src
├── App.vue                           # 根组件
├── api                               # 接口请求层
├── assets                            # 静态资源(图片、字体等)
├── components                        # 公共可复用组件
├── config                            # 全局配置项
│     ├── global.ts                   # 全局常量定义
│     ├── color.ts                    # 主题色彩配置
│     └── style.ts                    # 布局样式常量
├── constants                         # 业务常量集合
│     └── index.ts
├── hooks                             # 自定义 Composition API 钩子
│     └── index.ts
├── layouts                           # 页面布局结构
│     ├── components                  # 布局子组件(如侧边栏、面包屑)
│     ├── frame                       # 嵌套路由容器
│     ├── setting.vue                 # 布局配置面板
│     ├── blank.vue                   # 空白布局(无导航)
│     └── index.vue                   # 默认布局模板
├── locales                           # 国际化语言包配置
│     └── index.ts					  # 多语言资源管理
├── pages                             # 业务页面模块
│     ├── dashboard                   # 示例页面:仪表盘
│     │     └── base
│     │           ├── components      # 页面内局部组件
│     │           ├── constants.ts    # 页面级常量
│     │           ├── index.ts        # 页面逻辑导出
│     │           └── index.vue       # 页面主组件
│     └── user                        # 示例页面:用户管理
│           ├── constants.ts
│           ├── index.less
│           ├── index.ts
│           └── index.vue
├── router                            # 路由配置模块
├── store                             # 状态管理(Pinia)
│     ├── index.ts                    # Store 入口
│     └── modules                     # 模块化状态管理
│           ├── user.ts
│           ├── setting.ts
│           └── notification.ts
├── style                             # 全局样式
│     ├── reset.less                  # 样式重置
│     ├── variables.less              # 设计 Token 变量
│     ├── layout.less                 # 布局通用样式
│     └── font-family.less            # 字体配置(腾讯体W7)
├── types                             # TypeScript 类型定义
├── utils                             # 工具函数库
│     ├── route                       # 路由工具封装
│     ├── request                     # 请求封装(基于 axios/fetch)
│     ├── charts.ts                   # 图表相关工具
│     └── color.ts                    # 色彩处理工具
├── permission.ts                     # 路由权限控制逻辑
└── main.ts                           # 应用入口文件

关键目录说明

目录说明
api统一管理所有 API 接口请求,建议按模块组织,如 user.api.tsorder.api.ts,便于维护和类型推导。
components存放跨页面复用的公共组件,如表格封装、弹窗、上传组件等。
layouts提供多种页面布局模板,支持动态切换,如侧边栏布局、顶部导航布局、空白页等。
locales国际化资源目录,集中管理多语言文本。index.ts 中导入并导出不同语言包(如 zh-CN.ts, en-US.ts),配合 Vue I18n 实现语言切换功能,适用于需要支持多语言的国际化项目。
pages业务功能页面所在目录,每个页面独立成模块,内部可包含子组件、常量、样式等,遵循高内聚原则。
router路由配置中心,定义页面路由、懒加载、元信息(meta)等。
store使用 Pinia 实现状态管理,模块化设计,支持用户信息、系统设置、通知等状态的集中管理。
utils封装常用工具函数,如请求拦截、路由辅助、颜色转换、日期格式化等。
style全局样式与设计系统对接,通过 variables.less 统一管理主题变量,便于主题切换。
types定义项目中使用的 TypeScript 接口与类型,提升类型安全与开发体验。

环境变量配置

项目通过 Vite 的环境变量机制实现多环境配置。根目录下包含以下环境文件:

  • .env.development:开发环境
  • .env.test:测试环境
  • .env:生产环境

常用环境变量如下:

变量名说明
VITE_BASE_URL应用基础路径,用于部署子目录场景
VITE_IS_REQUEST_PROXY是否开启请求代理(开发环境常用)
VITE_API_URL后端接口基础地址
VITE_API_URL_PREFIX接口请求前缀(如 /api/v1

总结

JavaFree Web 基于TDesign 和ElementPlus 提供了一套成熟、规范的前端工程架构,结合 Vue3 的响应式系统与 TypeScript 的类型能力,极大提升了开发效率与代码质量。通过合理的分层设计与模块化组织,项目具备良好的可读性、可维护性与扩展性,适合中大型企业级应用的持续开发。后续章节将结合具体业务场景,深入讲解各层的编码规范与最佳实践。