Application Settings
Это дополнение предоставляет простой API и пользовательский интерфейс для работы с изменяемыми значениями различных типов, хранящимися в базе данных. Эти значения обычно используются как параметры различного функционала приложения.
Установка
Для автоматической установки через Jmix Marketplace следуйте инструкциям в разделе Дополнения.
Для ручной установки добавьте следующие зависимости в ваш build.gradle
:
implementation("io.jmix.appsettings:jmix-appsettings-starter")
implementation("io.jmix.appsettings:jmix-appsettings-flowui-starter")
Использование
Чтобы определить некоторые настройки, создайте сущность, расширяющую класс io.jmix.appsettings.entity.AppSettingsEntity
:
@JmixEntity
@Table(name = "CUSTOMER_SETTINGS")
@Entity
public class CustomerSettings extends AppSettingsEntity {
@Column(name = "NOTIFICATION_TEXT")
private String notificationText;
@AppSettingsDefault("B")
@Column(name = "DEFAULT_GRADE")
private String defaultGrade;
@AppSettingsDefault("1000")
@Column(name = "SALES_THRESHOLD", precision = 19, scale = 2)
private BigDecimal salesThreshold;
// getters and setters
После этого вы сможете устанавливать значения для атрибутов этой сущности с помощью экрана Application settings.
Для получения настроек в коде приложения используйте бин AppSettings
, например:
@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.setGrade(defaultGrade);
}