1. 项目配置

本章节中,我们将通过几个简单的步骤配置一个新项目。然后大概了解下项目的结构以及如何找到项目的基本组件。尝试运行项目并熟悉框架提供的即用功能,了解项目运行的逻辑。

配置开发环境

首先,按照 配置 章节的说明检查系统是否满足要求,并安装 Jmix Studio。

在本教程中,我们假设你拥有 Jmix Studio 的商业许可或者试用许可。这两种许可支持使用 Studio 中的可视化编辑器和代码生成功能,可以节省开发时间并帮助了解 Jmix 的功能。

当你第一次运行 Jmix Studio 时,它会自动获取一个试用许可,有效期为 28 天。试用期过了之后,可以继续使用免费版 Studio 或购买商业许可。

可以在打开 Jmix 项目后管理商业或试用许可,参阅 订阅 章节。

创建项目

运行安装了 Jmix Studio 的 IntelliJ IDEA,切换至 Projects 标签页并点击 New Project

create project 1

New Project 向导的第一步,选择 Jmix ProjectRepositoryJmix version 字段使用缺省设置即可:

create project 2

Project JDK 字段,选择 JDK 版本,11 或 17。如果该字段显示 <No SDK>,可以在下拉列表中选择 Download JDK 并根据进一步的说明下载和选择 JDK。

点击 Next

New Project 向导的下一步中,选择列表中的第一个模板:Full-Stack Application (Java)

create project 3

点击 Next

New Project 向导的最后一步中,Project name 字段我们输入 onboarding

create project 4

Base package 字段定义项目的 Java 包名称。本教程中,可以直接使用向导推荐的值(com.company.onboarding)。

Project id 是可选字段,我们留空。

点击 Create

项目创建完成后,IDE 会自动开始下载依赖并对项目建立索引。第一次打开项目时,耗时会有点长,请耐心等待状态栏的进度条完成。

IDE 有可能会显示一组通知消息,建议下载 "pre-built shared indexes" 或安装额外的插件,这些通知可以拒绝或直接关闭。

但是要注意 Jmix 试用许可的通知!这里需要点击接受。

当项目准备好时,IDE 会在左侧打开 Jmix 工具窗口,并在工作区展示 Welcome 界面:

create project 5

新项目探索

Jmix 工具窗口展示项目的结构化视图。我们看看新项目包含哪些内容。

  • Build Scripts 部分,可以查看 Gradle 构建文件:

    explore project 1
  • Configuration 部分,包含 application.properties 文件,其中定义了数据库连接参数、日志级别和其他项目属性:

    explore project 2
  • Add-ons 部分,展示安装的 Jmix 扩展组件列表:

    explore project 3

    如果双击 Add-ons 节点,Studio 会打开一个管理项目扩展组件的对话框。

  • Data Stores 部分,展示注册的数据存储列表以及它们的 Liquibase 变更日志:

    explore project 4

    Liquibase 变更日志是描述数据库结构变更的 XML 文件。

    如果双击 Main Data Store (主数据存储)节点,可以在弹窗中看到数据库连接的参数。这些参数保存在 application.properties 文件中。

  • Data Model 部分,展示项目中所有的实体。新项目中,只有一个 User 实体:

    explore project 5
  • User Interface 部分,包含项目的界面,快速访问本地化消息的 Message Bundle 节点,以及管理应用程序菜单描述文件的 Main Menu 节点:

    explore project 6

    可以看到,项目已经包含了几个界面:

    • LoginScreen - 使用用户名和密码进行用户认证的登录界面。

    • MainScreen 用户登录后打开的主界面。带有主菜单,并可以在内部打开其他界面。

    • User.browseUser.edit 界面是 User 实体的 CRUD 界面。在 Jmix 中,browse 后缀表示用于展示实体列表的界面,edit 表示用于编辑单一实体实例的界面。

  • Security 部分,展示角色列表。新项目包含一个 FullAccessRole 角色,分配给了 admin 用户:

    explore project 7
  • 如果双击 Sources 节点,Studio 会打开 Project 工具窗口,展示完整的源代码视图:

    explore project 8

IDE 中运行应用程序

在 IDE 打开项目之后,可以立即运行新项目并查看应用程序的初始状态。

启动应用程序

run app 1

在主工具栏的下拉框中选择 Onboarding Jmix Application,然后点击右侧的 Debugstart debugger)按钮。

如果你使用的是 IntelliJ IDEA Ultimate 版本,可能会注意到在 Run/Debug Configurations 下拉列表中有一个名为 OnboardingApplication 的条目,且左侧带有 Spring Boot(spring boot)图标。这是由 IDE 中自带的 Spring Boot 插件自动添加的任务,不要用这个。

如需运行 Jmix,始终都要使用带 Gradle(gradle)图标的运行配置。

Studio 会出现关于数据存储和未应用变更日志文件的警告:

run app 2

这是什么意思?

在每次启动应用程序时,Studio 都会尝试同步项目的数据模型和数据库中的表结构。因此,当你修改了项目中的实体或实体属性,Studio 会自动生成相应的 Liquibase 更改日志,以便更新数据库结构。

为了生成变更日志,Studio 需要获取数据库中当前的数据结构。然后将获取的结构与项目中当前的数据模型进行对比,根据差异生成变更日志。

此时,我们的数据库还是空的(实际上,Jmix 默认使用基于文件的 HSQL 数据库,此时还不存在),为了生成差异的变更日志,Studio 首先需要创建数据库并执行目前项目中已经有的变更日志。在弹出的对话框中,可以看到项目依赖中带有的变更日志(标记为 read only)和项目本身的变更日志(010-init-user.xml)。

点击 Execute and proceed

可以在底部的 Run 工具窗口中看到 Studio 执行 Liquibase 变更日志的过程:

run app 3

已有的全部变更日志都已经执行,Studio 检查了数据库结构和数据模型的差异,并没有发现不同。这是正确的,目前我们没有修改任何数据库模型。

在检查完数据库之后,Studio 会构建并运行应用程序。可以在底部的 Debug 工具窗口看到运行应用程序的输出:

run app 4

当应用程序准备好时,可以在控制台看到这样的消息:Application started at http://localhost:8080

登入应用程序

在浏览器打开 localhost:8080,可以看到应用程序的登录界面:

run app 5

已经在用户名和密码字段填写了默认的 admin / admin 凭证(后续可以删除),点击 Submit

在主菜单中,点击 ApplicationUsers

run app 6

会打开 Users.browse 界面,展示 User 实体的列表。目前,我们仅有通过 010-init-user.xml 变更日志创建的 admin 用户。

停止应用程序

可以在 IDE 的主工具栏点击 Stopsuspend)按钮停止运行中的应用程序:

run app 7

然后会在 Debug 控制台看到如下输出:

run app 8

别担心,这并不是说应用程序运行出现了问题,而是 IDE 的正常行为。

小结

在本章节中,我们配置了开发环境并通过 IDE 创建了一个新的 Jmix 项目。

学习内容:

  • Jmix Studio 是一个 IntelliJ IDEA 的插件。

  • 本教程假设你拥有 Jmix Studio 的商业或试用许可。

  • Studio 有创建新项目的向导,使用不同的项目模板。

  • Studio 在 Jmix 工具窗口展示项目结构。

  • 新项目包含登入应用程序和管理用户的功能。

  • 新项目在创建完成后可以立即从 IDE 启动。

  • 新项目使用基于文件的 HSQL 数据库,会在第一次启动项目时自动创建。