「开源」全栈框架:打造企业级应用开发新标准

发表时间: 2022-11-22 23:44

一飞开源,介绍创意、新奇、有趣、实用的免费开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

Jmix 是一个库和工具的集合,可以加快以数据为中心的 Spring Boot 应用程序开发过程。Jmix 提供了许多开箱即用的功能,包括类似复杂的数据安全和审计方面的高级系统功能以及类似于报表引擎或业务流程执行引擎的业务功能,只需要几行代码就可以引入这些功能。

降低成本和时间业务系统开发

发现一个应用程序快速开发平台,实现您的数字化愿景,无低代码平台限制,无供应商依赖,无需按用户付费。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

四、功能概述

Jmix 是企业级 Web 应用程序开发的高级别框架。配备了先进的开发工具和丰富的功能模块。

Jmix 最适合用于构建以数据为中心,且具有复杂数据模型和丰富用户界面的应用程序。从某种意义上说,它是一个全栈框架,能为创建应用程序的后端和 UI 提供支持。

Jmix 基于 Spring Boot,这是创建企业级 Java web 应用程序的事实标准。也就是说,除了使用 Jmix 提供的功能之外,还能以最小的配置使用很多第三方库和框架。

Jmix Studio 是 IntelliJ IDEA 的一个插件,可以在整个应用程序开发周期为你提供帮助:创建和配置项目、定义数据模型、生成数据库脚本以及在可视化编辑器开发 UI 界面。更是为 Jmix 项目提供了代码的高级导航、自动完成和提示功能。

五、技术选型

架构概览

这里我们采用 C4 模型表示法,展示 Jmix 架构的鸟瞰图。

容器

首先,我们将一个用 Jmix 构建的典型信息系统划分成不同的容器。这里的容器是指可以单独运行/部署的单元,负责执行代码或者存储数据。

可以看到,系统的主要部分包括运行在 JVM 上的 Web 应用程序以及一个关系型数据库。Web 应用程序基于 Spring Boot,支持用 Java 或 Kotlin 编写。关系型数据库用于保存 Jmix 子系统的数据(例如,安全配置)以及作为应用程序数据的主要存储。

Jmix 应用程序可以与多个附加数据存储连接,并支持使用文件系统或云环境作为独立的文件存储。此外,Jmix 还支持集成 Elasticsearch 实现对应用程序数据的全文检索功能,支持通过 OIDC 服务进行外部认证和单点登录(SSO)。

Jmix 应用程序为用户提供 web 界面,界面使用 Jmix UI 子系统通过 Java/Kotlin 和 XML 创建。

你也可以创建独立的前端应用,通过 Jmix REST API 或创建自己的接口与 Jmix 后端连接。这里的前端应用并不在 Jmix 的范围内,你可以选择任何技术进行构建。

组件

我们更进一步进入 Jmix 容器内了解其内部组件。

Jmix 应用程序始终包含对 Spring Boot 和其他 Jmix 子系统的依赖关系。Jmix 有两类子系统:

  • 核心子系统 提供系统级别的功能,包含在绝大多数项目中。
  • 扩展组件 是可选的子系统,根据需要添加至项目中。扩展组件在 Jmix 市场 发布。

技术上来说,核心子系统和扩展组件都是以相同的方式进行组织。子系统包含一个或多个功能模块以及对应的 Spring Boot starter,均以 JAR 文件格式打包。子系统可以依赖其他子系统,例如,很多包含界面的扩展组件依赖核心 UI 子系统。

使用 Jmix

下载 Jmix Studio - 一个 IntelliJ IDEA 插件。它可以在应用程序开发的所有阶段提供帮助:创建和配置项目、定义数据模型、生成数据库脚本以及使用可视化编辑器开发界面。它也为 Jmix 项目提供了专有的高级导航、代码完成和代码审查功能。

按照快速开始 指南可以在15分钟内建立并运行一个项目。该指南展示了在创建任何 Web 应用程序时都必须做的一些事情:如何设计模型、如何维护数据、如何创建业务逻辑以及如何创建用户界面。

从源码构建

  • 访问一飞开源:https://code.exmay.com/ 下载
  • 安装 JDK 8 。
  • 构建并发布框架模块到本地 Maven :
  • cd jmix ./gradlew publishToMavenLocal
  • 如果你要构建 Jmix Gradle 插件、 Studio 模板或框架的本地化翻译,可在相应的目录中执行 ./gradlew publishToMavenLocal :
    • jmix-gradle-plugin - 用于构建 Jmix 应用程序的 Gradle 插件。
    • jmix-build - 一个内部 Gradle 插件,封装了框架的构建逻辑,构建应用程序时不使用它。
    • jmix-templates - Studio 新建项目向导中使用的项目模板。
    • jmix-translations - 框架翻译 。

如果你想要为 Jmix 贡献代码, 请参阅贡献。

六、源码地址

访问一飞开源:https://code.exmay.com/