4.5.3. 应用程序组件示例

在本节中,我们将展示创建应用程序组件并在项目中使用的完整示例。该组件将提供 "客户管理(Customer Management)"功能,并包括 客户(Customer) 实体和相应的 UI 界面。应用程序将使用组件中的 Customer 实体作为其 订单(Order) 实体中的引用。

app components sample

创建客户管理组件


-
在 Studio 中创建一个新项目,并在 New project 界面上指定以下参数:


-
Project name - customers

-
Project namespace - cust

-
Root package - com.company.customers


-
编辑 Project properties,在 Advanced 标签页上将 Module prefix 设置为 cust

-
创建至少有 name 属性的 Customer 实体。切换到 Instance name 标签页,并将 name 添加到 Name Pattern 属性。




如果组件包含 @MappedSuperclass 持久化类,请确保它们在同一个项目中有后代实体(即使用 @Entity 注解)。否则,这些基类将无法被正确增强(enhanced),并无法在应用程序中使用它们。




-
生成 DB 脚本并为 Customer 实体创建标准界面: cust$Customer.browsecust$Customer.edit。之后,转到主菜单设计器并将 application 菜单项重命名为 customerManagement

-
单击 CUBA > Advanced 菜单中的 App Component Descriptor 链接。单击 OK 保存生成的描述。

-
测试 Customer Management 功能: CUBA > Create DatabaseCUBA > Start Application Server,然后在 Web 浏览器中打开 http://localhost:8080/cust

-
通过执行 CUBA > Advanced > Install App Component 菜单命令将应用程序组件安装到本地 Maven 仓库中。

创建 Sales 应用程序


-
在 Studio 中创建一个新项目,并在 New project 界面上指定以下参数:


-
Project name - sales

-
Project namespace - sales

-
Root package - com.company.sales


-
编辑 Project properties,并在 Repositories 部分中将本地 Maven 仓库添加到仓库列表。

-
App components 面板上单击 Custom components 旁边的加号按钮。在 Custom application component 对话框中,在 Registered project 下拉列表中选择 customers 项目。该列表包含在 Studio 中注册的具有 app-component.xml 描述的所有项目。单击对话框中的 OK。客户管理组件的 Maven 坐标将显示在自定义组件列表中。单击 OK 保存项目属性。

-
创建 Order 实体并添加 dateamount 属性。然后添加 customer 属性,与 Customer 实体多对一关联 - Customer 在 Type 下拉列表中可用。

-
生成 DB 脚本并为 Order 实体创建标准界面。在创建标准界面时,先创建一个包含 customer 属性的 order-with-customer 视图,并将该视图用于界面展示。

-
测试应用程序功能:CUBA > Create DatabaseCUBA > Start Application Server,然后在 Web 浏览器中打开 http://localhost:8080/app。该应用程序将包含两个顶级菜单项: Customer ManagementApplication 以及相应的功能。

修改客户管理组件

假设现在必须更改组件功能(在 Customer 中添加一个属性),然后重新装配应用程序以合并更改。


-
在 Studio 中打开 customers 项目。

-
编辑 Customer 实体并添加 address 属性。保存实体时,选择浏览和编辑界面以包含新属性。

-
生成数据库脚本 - 将创建更新表的脚本。保存脚本。

-
测试组件中的更改:CUBA > Update DatabaseCUBA > Start Application Server,然后在 Web 浏览器中打开 http://localhost:8080/cust

-
通过执行 CUBA > Advanced > Install App Component 菜单命令将应用程序组件重新安装到本地 Maven 仓库中。

-
关闭 Studio 中的 sales 项目(如果已打开)并再次打开它。这是在 Studio 中下载新组件源代码所必须的。

-
执行 CUBA > Build Tasks > Clean,然后执行 CUBA > Build Tasks > Assemble 菜单命令。

-
执行 CUBA > Update Database - 将执行客户管理组件的更新脚本。

-
执行 CUBA > Start Application Server 并在 Web 浏览器中打开 http://localhost:8080/app - 该应用程序将包含 Customer 实体和带有新属性 address 的界面。