5.3. 业务逻辑

项目树集中在一个地方显示所有中间层服务、Spring bean 以及集成测试。在下面的章节中,我们将介绍如何创建新服务、bean 和测试。

5.3.1. 创建服务

服务 是容器管理的组件集,它们构成中间层边界并为客户端层提供接口。服务可以包含业务逻辑本身,也可以将执行委托给托管 Bean

要创建新服务,请选择 Business Logic 项目树区域,然后在右键菜单中单击 New > Service

create service

输入服务接口的名称时,将自动生成相应的 bean 名称和服务名称常量:

create service 2

之后,将在 global 模块中创建服务接口,并在 core 模块中创建其实现。此外,新服务将自动注册在 web-spring.xml 配置文件中。

可以从代码编辑器边栏上的标记轻松地从接口切换到服务 bean 并返回:

service interface

一旦在服务接口中创建了方法,Studio 检查器就会建议在 bean 类中进行实现:

service interface 2

5.3.2. 创建 Spring Bean

Studio 在项目树的 Business LogicBeans 部分显示中间层(包括实体和事务监听器)的所有 Spring beans。Bean 按照它们所属的模块分组:coreglobalwebportal

studio beans

要创建 Spring bean,选择项目树的 Business LogicBeans 节点,并在右键菜单中选择 New > Bean

create bean

  • Module - 选择新建 bean 放置的模块

  • Class - bean 的类名

  • Name - bean 的唯一名称。当输入类名后,会自动生成

5.3.3. 创建 JMX Beans

JMX Beans 是一类特殊的 Spring bean。系统管理员用 JMX bean 在运行时查看和更改应用程序的运行状态。这些 bean 通常用来提供统计信息、监控信息、修改配置以及其他一些系统内部操作。

Studio 在项目树的 Business LogicBeans 与其他 bean 一起展示 JMX bean。JMX bean 可以在项目的 coreglobalweb 模块创建。

如需创建 JMX bean,在项目树选中 Business LogicBeans ,然后在右键菜单中选择 NewJMX Bean,然后会弹出 Create JMX Bean 对话框:

create jmx bean dialog

  • Module - 选择新建 bean 放置的模块

  • Interface Class - bean 接口名称。此接口包含将会开放给 JMX 的方法。名称需要以 MBean 结尾

  • Bean Class - bean 的类名

  • Bean Name - bean 的唯一名称。当输入接口名后,会自动生成

  • Package - bean 包名

  • Description - bean 描述,将在 JMX 客户端(比如 CUBA 自带的 JMX Console )展示给用户。

5.3.4. 创建事件监听器

事件监听器是指,在 Spring bean 中,有一个或者多个监听器方法,接收 Event 对象作为参数,并包含对该事件响应的代码。可以在 开发者手册 中了解更多关于事件和事件监听器的内容。

Studio 可以为多种应用程序事件创建监听器的脚手架代码:

可以生成新的监听器类或者为已有的类添加监听器。

新建监听器类

要创建新的监听器类,在 CUBA 项目树的 Business Logic 部分点击右键,选择 NewEvent Listener 条目。

create event listener

对话框中可以选择监听器类所在的模块。事件监听器可以位于 web 模块,但是此时只有有限的事件可以使用。选择事件类型,按照向导提供所需的参数并点击 Finish 按钮生成类代码。

为已有类添加监听器方法

打开已有的 Spring Bean,在代码编辑器顶部的操作面板点击 Subscribe to event

add listener method

5.3.5. 创建集成测试

CUBA 应用程序可以用众所周知的方式进行测试:单元测试、集成测试以及界面测试。Studio 为开发者提供下列种类的测试支持:

  • 中间件集成测试 。这种类型的测试用来测试中间件功能:服务,bean,事件监听器,ORM 逻辑以及与数据库通信。中间件测试在一个能连接至数据库的全功能 Spring 容器中运行。

  • Web 集成测试 。这些测试用例运行在 web 客户端 block 的 Spring 容器中。Web 测试容器与中间件测试容器分别独立运行,框架负责创建中间件服务的桩代码。

这两组测试都在 CUBA 项目树的 Business LogicTests 部分展示,按模块分组:

tests in tree

如需创建新的集成测试,在项目树选中 Business LogicTests ,然后在右键菜单中选择 NewIntegration Test (Middleware)Integration Test (Web)

create test menu

如果您的项目还没有测试代码根目录或者没有测试容器,Studio 会在创建文件和类之前显示一个额外的确认弹窗。

在这个弹窗中,需要输入以下参数:

  • Class Name - 测试类名

  • Package - 测试类的包名

  • Test container class - 测试容器类名。默认会自动创建 Common 容器,但是也可以创建其他容器类,比如,使用其他的 DBMS 测试应用程序。

  • Testing library - 选择 JUnit5JUnit4。注意,使用 CUBA 7.1 和以下版本创建的项目,即便迁移到了 CUBA 7.2,也只支持 JUnit4

create mw test dialog