1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lexindasoft-veryrule

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Очень строгое изображение

Характеристики

  • Можно установить отдельное правило или путь конфигурационного пакета правил.

  • Можно вызвать одной строкой кода.

  • Можно создавать пользовательских слушателей.

  • Можно тестировать правила на достижение.

  • Можно использовать аннотации для вызова (в сочетании с Spring для включения аспектов).

  • Можно настраивать пользовательские аннотации и получать значения.

  • Можно использовать пулы потоков для обработки условий с возвращаемым значением (асинхронные правила).

  • Можно использовать встроенные инструменты управления правилами для создания сценариев и потоков правил.

  • Можно использовать встроенные инструменты управления правилами для редактирования последовательности выполнения условий (правила без возвратного значения, условия с возвратным значением (синхронные)).

Инструмент управления правилами (очень строгое платформа)

  • Управление потоками правил: Создание нового, редактирование, удаление, деактивация, копирование, просмотр шаблонов правил, редактирование шаблонов правил, удаление шаблонов правил, тестирование, сцены, документация интерфейсов

  • Управление сценариями правил: Создание нового, редактирование, удаление.- Управление правилами: Создание нового, редактирование, удаление.

  • Инструменты управления правилами: Обнаружение незадействованных правил при создании

Использование```markdown

// Определение условия без обратного значения @Rule(code = RuleCode.NOTNULL, name = "Заданный ключ не может быть пустым", desc = "Заданный ключ не может быть пустым", type = RuleType.CONDITION) public class NotNullRuleCondition implements IRuleCondition { @Override public void condition(Map<String, Object> param, R rule) throws Exception { String ruleKey = rule.getRuleKey(); String[] keys = null; if (ruleKey.indexOf(",") > 0) { keys = ruleKey.split(","); } else { keys = new String[]{ruleKey}; } for (String key : keys) { Object data = param.get(key); if (data == null) { throw new Exception(key + rule.getRuleErrMsg()); } else { if (" ".equals(data.toString().trim())) { throw new Exception(key + rule.getRuleErrMsg()); } } } } // Дополнительно можно переопределить //@Override //public Map<String, Object> ruleTest(R rule) { // Map<String, Object> result = new HashMap<String, Object>(); // Rule ruleAnnotation = this.getClass().getAnnotation(Rule.class); // if (rule != null && rule.getRuleCode().equals(ruleAnnotation.code())) { // result.put(rule.getRuleCode(), ruleAnnotation.name()); // } // return result; //} }

// Инициализация // Можно указать класс правил VeryRule veryRule = VeryRule.builder().condition(NotNullRuleCondition.class).resultCondition(...).action(...).listener(...);

// Можно указать путь к пакету правил VeryRule veryRule = VeryRule.builder().rulePackage("com.lexinda.veryrule.base").listener(TestRuleListener.class)```markdown // Отдельное использование Map<String, Object> param = new HashMap<>(); param.put("a", "123a"); RuleBo nn = new RuleBo("notNull", "a,c", "", "Не может быть пустым", RuleType.CONDITION); veryRule.fire(param, nn);

// Соответствие Spring

// Соответствие Spring Boot // Путь к пакету veryrule veryrule.rulePackage=com.lexinda.veryrule.base

// Чтение встроенных правил veryrule.loadDefaultRule=true

// Включение аннотаций veryrule.useAspect=true

// Пользовательская аспектная логика (получение значений, валидация и т.д.) veryrule.aspectBean=com.lexinda.veryrule.aspect.VeryRuleAspect // Пользовательский слушатель veryrule.listenerBean=com.lexinda.veryrule.platform.listener.VeryRuleListener // Spring AOP - одиночный правило, тип правила по умолчанию - условие без возвращаемого значения @VeryRuleSingle(ruleCode = RuleCode.NOTNULL, ruleKey = "currentPage,ruleType", ruleErrMsg = "не может быть пустым") // Spring AOP - компоновка потока правил @VeryRuleFlow(ruleFlowCode = "test")


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Правило engine, обладающий свойствами простоты, гибкости, возможности многократного использования, упорядочивания и настройки под конкретные сценарии. Развернуть Свернуть
Java и 6 других языков
Apache-2.0
Отмена

Обновления (4)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lexindasoft-veryrule.git
git@api.gitlife.ru:oschina-mirror/lexindasoft-veryrule.git
oschina-mirror
lexindasoft-veryrule
lexindasoft-veryrule
main