编码辅助
Jmix Studio 提供代码完成、代码检查、错误高亮展示和快速修复,以及方便的代码重构和丰富的导航功能。
下面我们了解下主要的编码辅助工具。
代码检查
Jmix Studio 能在编译前检查出项目中的典型编程错误,并提供修复建议。
根据错误级别的不同,Studio 会对问题代码以不同的方式进行高亮展示。
对某些检查,Jmix Studio 会建议使用 快速修复。
快速修复
当某些检查发现了代码中的问题时,可以在编辑器中使用快速修复功能。将光标放在高亮代码的某个位置然后按下 Alt+Enter
。
另一种方式是光标放在高亮代码的某个位置然后点击 / 图标。然后可以看到当前上下文的智能提示操作。
代码辅助工具支持的范围
在主项目中,代码辅助工具可以用在各种不同的情况。
-
枚举和实体
- 检查
-
-
检查是否有 @InstanceName 注解。
-
检查对数据类型字段使用不正确的
LAZY
读取类型,以及@OneToOne
、@OneToMany
、@ManyToMany
和@ManyToOne
使用EAGER
读取类型。 -
检查每个实体字段是否有 JPA 注解。
-
检查实体和枚举类及其属性是否具有本地化消息。
-
检查持久化枚举属性是否根据 Jmix 约定进行声明 - 使用标识符类型。
-
检查
@Version
注解是否重复。 -
检查内部嵌入属性是否没有用
@Embedded
注解。 -
检查实体是否有主键属性。
- 快速修复和智能提示
-
-
生成实例名称。
-
用设计器添加实体属性。
-
将实体属性添加至表格、表单、数据网格等可视化组件。
-
为不同的资源角色编辑实体属性许可权限。
-
为不同的资源角色编辑实体许可权限。
-
-
界面 XML 描述
- 检查
-
-
检查
table
、form
和其他可视化组件中的属性名称和属性路径。 -
检查
dataContainer
和optionsContainer
属性。这些属性应该引用当前界面内的数据容器,或者包含当前界面的 frame 中的数据容器。 -
检查
gridLayout
中声明了列数量的行中是否有相应数量的列。 -
检查 Jmix 界面描述中的下列内容:
-
expand
属性; -
id
的唯一性。
-
-
检查带有
type
属性的操作不应该设置trackSelection
属性。 -
当实体属性在 XML 中的 UI 组件使用,而该属性并未包含在 fetch plan 中时,报告错误。
-
当 XML 布局中有超过一个根元素时报错。
-
在 XML 描述中搜索冲突的
width
、height
和expand
属性值。 -
检查
form
的下列内容:-
重复字段;
-
column
外的字段。
-
-
检查
hierarchyProperty
属性。该属性需要与数据容器中的实体的类型一致。
-
-
Fetch Plans
-
检查
fetchPlan
的class
属性是否设置。 -
检查同一个
fetchPlan
标签中声明多次的属性。 -
检查 fetch plan 当前的名称是否在其他 fetch plan 配置中出现过。
-
检查
fetchPlan
属性是否包含内部属性或fetchPlan
属性,如果有,则该属性需要指向一个实体。 -
检查无需显式指定可以省略的属性,因为这些属性已经包含在 fetch plan 中。
-
-
界面控制器
- 检查
-
-
检查每个 setter 仅有一个关联的装载(install)方法。
-
检查界面控制器中注入的组件、操作和数据组件。如果注入字段的类型错误则报错。
-
检查界面控制器中注入的组件。如果注入字段没有设置泛型类型,例如,使用了
Table
而非Table<MyEntity>
,则提供快速修复。 -
检查正确实现了事件处理器:
-
事件处理器必须仅位于界面控制器内。
-
事件处理器必须使用 void 返回类型。
-
事件处理器必须只有一个参数,且参数类型继承自
java.util.EventObject
。 -
无法找到指定的 UI 组件。
-
-
检查装载的代理:
-
代理只能装载在界面控制器中。
-
无法找到代理的载入点。
-
载入点方法必须是
void
返回类型,且只有单一的FunctionalInterface
类型参数。 -
无法找到指定的 UI 组件。
-
-
高亮可疑的字段赋值,如果此时字段应该使用容器进行注入。
-
检查 GUI 组件是否通过
ComponentsFactory.createComponent()
创建。
-
- 快速修复和智能提示
-
-
编辑不同角色的界面权限。
-
为界面控制器创建 XML 描述。
-
从控制器导航至菜单项。
-
-
日志
- 检查
-
-
检查使用了
org.slf4j.Logger
logger,而非System.out.println()
、System.err.println()
和java.lang.ThrowableprintStackTrace()
。 -
高亮丢失打印异常堆栈信息的 apache-commons 日志。
-
-
菜单
- 检查
-
-
检查菜单么有重复项。
-
-
安全
- 检查
-
-
检查资源角色中重复的编码。
-
检查资源角色中重复的名称。
-
检查项目中是否存在某个界面。
-
检查资源角色中的实体属性策略。
-
-
Bean 和服务
- 检查
-
-
检查服务 bean 是正确的 Jmix 框架中的 bean。
-