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

OSCHINA-MIRROR/MiMose-chains-spring-boot-component

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

CHAINS-SPRING-BOOT-COMPONENT

链路组件

Использование метода:

  1. Создайте соответствующий класс цепи, наследуя от Chain. Сначала реализуйте метод myName() в этом классе для добавления уникального идентификатора к вашей цепи. Если существует подходящий класс цепи, просто используйте его.
public class ExampleChain extends Chain {
    @Override
    public void withInvokers() {
        // Завершите настройку после выполнения третьего шага
    }

    @Override
    public String myName() {
        return "example"; // Эта строка должна быть уникальной, чтобы можно было получить соответствующую цепь
    }
}
  1. Создайте соответствующие классы запроса и ответа, наследуя их от RequestBaseDto и ResponseBaseDto соответственно. Если уже существуют подходящие классы, просто используйте их.
public class ExampleRequestDto extends RequestBaseDto {

    // Этот объект используется для передачи параметров обработки цепи
    private String param1;
    private Object param2;
}

public class ExampleResponseDto extends ResponseBaseDto {

    // Этот объект используется для возврата результатов обработки, доступных для всех обработчиков в цепи
    private String result1;
    @JSONField(format = "yyyy-MM-dd")
    private Date result2;

}
  1. Создайте соответствующий обработчик класса, наследуя его от Invoker. Если уже существует подходящий обработчик, просто используйте его.
public class ExampleInvoker_one extends Invoker<ExampleRequestDto, Response> {

    @Override
    public Response invoke0(ExampleRequestDto request, Response tResponse) {
        ExampleResponseDto response = super.getLastResponse(tResponse, ExampleResponseDto.builder().build());
        // Конкретная логика обработки
        do something
        После обработки вы можете решить, следует ли прервать текущую цепь.
        Если вы хотите прервать, верните
            return tResponse.end(true, response);
        Если вы хотите продолжить, верните
            return tResponse.end(false, response);
    }
}
  1. Реализуйте метод withInvokers в вашем классе цепи для инициализации всех обработчиков этой цепи.
public class ExampleChain extends Chain {
    @Override
    public void withInvokers() {
        invoker = new ExampleInvoker_one();
        if у этой цепи есть два или более обработчика, используйте setNext для добавления обработчиков
        invoker.setNext(new ExampleInvoker_two());
        invoker.setNext(new ExampleInvoker_three());
        ...
    }

    @Override
    public String myName() {
        return "example";
    }
}
  1. Используйте цепь в бизнес-коде: 5.1 Синхронный вызов для получения результата:
// Создание параметров и вызов цепи:
ExampleRequestDto requestDto = ExampleRequestDto.builder().param1("параметр1").param2("параметр2").build();
Response<ExampleResponseDto> resp = (Response) Chain.newChain("example").invoke(Request._Request(requestDto));
// Получение результата
ExampleResponseDto respDto = resp.getResponse();

5.2 Асинхронный вызов с обратным вызовом для результата: Чтобы избежать блокировки основного потока во время выполнения, используйте Task для асинхронного вызова и получения результата, не блокируя основной поток.

// Создание параметров, сначала получение задачи цепи в основном потоке
ExampleRequestDto requestDto = ExampleRequestDto.builder().param1("параметр1").param2("параметр2").build();
ResponseAsyn<ExampleResponseDto> resp = (ResponseAsyn) Chain.newChain("example").withSync().invoke(Request._Request(requestDto));
// Основной поток продолжает выполнение
// Основная логика потока...
// Когда необходимо получить результат цепи, вызовите метод обратного вызова для получения результата (необходимо передать время ожидания [секунды], чтобы избежать длительного времени обработки цепи и влияния на бизнес)
ExampleResponseDto responseDto = resp.getResponse(3);

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

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

Введение

**Компонент цепочки** реализует вызовы цепочки посредством цепочечного программирования. После интеграции этот компонент позволяет настраивать упорядоченные цепочки, что позволяет реализовать такие функции, как цепочка перехватчиков или цепочка правил. Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/MiMose-chains-spring-boot-component.git
git@api.gitlife.ru:oschina-mirror/MiMose-chains-spring-boot-component.git
oschina-mirror
MiMose-chains-spring-boot-component
MiMose-chains-spring-boot-component
master