应用程序属性

该组件提供了简洁的 API 和 UI,用来处理数据库中存储的不同类型参数值。这些值通常作为应用程序不同功能的参数使用,例如,默认的配置、阈值,或功能的开关等。

安装

如需通过 Jmix 组件市场自动安装,请按照 扩展组件 章节的介绍进行安装。

如需手动安装,请在 build.gradle 中添加下列内容:

implementation 'io.jmix.appsettings:jmix-appsettings-flowui-starter'
implementation 'io.jmix.appsettings:jmix-appsettings-starter'

应用程序使用单一菜单模式

如果你的应用程序使用的是 单一菜单模式,需要在扩展组件安装完成后手动添加菜单项。

  1. 在 Jmix Studio 中打开 菜单设计器

  2. 切换至 Structure 标签页。

  3. 左侧面板显示可用的菜单项。

    add menu items
  4. 添加菜单项:

    • 左侧选择需要添加的菜单项后,点击 > 按钮添加至右侧。

    • 或者也可以直接从左侧拖拽菜单至右侧结构中。

当应用程序是 单一 菜单模式时,Studio 不会自动合并组件的菜单,因此必须手动执行该步骤。

使用方法

假设应用程序有一个 Customer 实体,以及简单的业务逻辑:

  • 新的用户需要配置 默认级别(例如,青铜/黄金/白金 等)和 默认国家,业务用户可以在运行时修改。

  • 还有一个 通知文本,可能会用于界面或报表中。

  • 所有这些值都必须在不重启应用的情况下可更改。

这可以通过两个步骤实现。

步骤 1. 定义一个配置实体

创建一个实体,继承自 io.jmix.appsettings.entity.AppSettingsEntity 类,并添加必要的配置属性:

@JmixEntity
@Table(name = "CUSTOMER_SETTINGS")
@Entity
public class CustomerSettings extends AppSettingsEntity {

    @AppSettingsDefault("B")
    @Column(name = "DEFAULT_GRADE")
    private String defaultGrade;

    @Column(name = "COUNTRY")
    private String country;

    @Column(name = "NOTIFICATION_TEXT")
    private String notificationText;

    // getters and setters

之后,业务用户可以通过应用程序中的 Application settings 视图编辑 defaultGradecountrynotificationText

app settings menu view

步骤 2. 在业务逻辑中使用这些配置

在应用代码里获取配置时,可以使用 AppSettings bean。例如,在 Customer 详情视图或实体初始化器中,可以根据读取的配置设置默认值:

@Autowired
private AppSettings appSettings;

@Subscribe
public void onInitEntity(InitEntityEvent<Customer> event) {
    CustomerSettings customerSettings = appSettings.load(CustomerSettings.class);
    CustomerGrade defaultGrade = customerSettings.getDefaultGrade();

    Customer customer = event.getEntity();
    customer.setCountry(customerSettings.getCountry());
    customer.setGrade(defaultGrade);
}

此时:

  • 当业务用户将默认等级从青铜升级为黄金时,所有新创建的客户都会被初始化为该设置。

  • 当业务用户配置默认国家时,所有新客户都会以该配置进行初始化。

app settings initialize entity

类似的,通知文本也可以通过绑定至标签或提示在 UI 中使用。