应用程序属性
该组件提供了简洁的 API 和 UI,用来处理数据库中存储的不同类型参数值。这些值通常作为应用程序不同功能的参数使用,例如,默认的配置、阈值,或功能的开关等。
安装
如需通过 Jmix 组件市场自动安装,请按照 扩展组件 章节的介绍进行安装。
如需手动安装,请在 build.gradle 中添加下列内容:
implementation 'io.jmix.appsettings:jmix-appsettings-flowui-starter'
implementation 'io.jmix.appsettings:jmix-appsettings-starter'
使用方法
假设应用程序有一个 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 视图编辑 defaultGrade、country 和 notificationText。
步骤 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);
}
此时:
-
当业务用户将默认等级从青铜升级为黄金时,所有新创建的客户都会被初始化为该设置。
-
当业务用户配置默认国家时,所有新客户都会以该配置进行初始化。
类似的,通知文本也可以通过绑定至标签或提示在 UI 中使用。
本页是否有帮助?
感谢您的反馈