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

OSCHINA-MIRROR/taoes-Saka

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

Saka JavaWeb: событийная шина

Saka — это простая событийно-ориентированная библиотека, поддерживающая отправку сообщений по схеме «один к одному», «один ко многим» и «многие ко многим». В настоящее время проект находится в версии 1.0 и находится в разработке. Более подробные инструкции по использованию будут опубликованы позже.

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

  1. Добавьте зависимости.

    Пожалуйста, дождитесь загрузки в репозиторий.

С нетерпением ждём загрузки!
  1. Используйте аннотации для маркировки объектов и исполнителей. (Обратите внимание, что в настоящее время поддерживается только приём без параметров или с одним параметром, приём нескольких параметров не поддерживается.)

    • Используйте @SakaSService, чтобы внедрить этот объект в контейнер Spring.

    • Используйте @SakaSubscribe, чтобы объявить метод как получатель. | Параметр | Описание | Значение по умолчанию | Примечание | |-----|----|-----|-----| | debug | Режим отладки | false | В режиме отладки будет выводиться журнал | | order | Установить порядок приоритета | 5 | Чем меньше число, тем выше приоритет, выполняется раньше |

Вот три основных примера приёмников:

/**
 * Реализовать приёмник сообщений
 *
 * <p>Использовать @SakaService для внедрения в контейнер Spring
 *
 * <p>Используйте @SakaSubscribe, чтобы отметить этот приёмник
 *
 * @author tao
 */
@SakaService
public class BaseService {

  /** Автоматическое внедрение тестового объекта */
  @Autowired SpeakService speakService;

  /** Без параметров */
  @SakaSubscribe
  public void sendEmpty() {
    speakService.speak();
    System.out.println("exec sendEmpty ");
  }

  /** С одним параметром */
  @SakaSubscribe
  public void sendString(String message) {
    speakService.speak();
    System.out.println("exec  sendString = " + message);
  }
  
  /** С параметром пользовательского типа */
  @SakaSubscribe
  public void sendClassObject(Message message) {
    speakService.speak();
    System.out.println("exec  sendClassObject = " + message.getName());
  }  
}
  1. Внедрите SakaSendClient.

    Saka автоматически внедряет ISakaClient в контекст Spring при запуске приложения. В проекте SpringBoot можно использовать следующий код для автоматического внедрения Bean-объекта.

@RestController
public class TestController {

  /** Автоматически внедрить SakaClient */
  @Autowired
  SakaSendClient sakaSendClient;

}  
  1. Отправьте сообщение с помощью клиента.

    После внедрения SakaClient отправьте сообщение, используя методы send() или send(Object).

@RestController
public class TestController {

  /** Автоматически внедрить SakaClient */
  @Autowired SakaSendClient sakaSendClient;

  /**
   * Попытка отправить строковое сообщение
   *
   * @param name
   * @return
   * @throws Exception
   */
  @GetMapping("/string/{name}")
  public String sendString(@PathVariable("name") String name) throws Exception {
    sakaSendClient.send(name);
    return name;
  }

  /**
   * Попытаться отправить сообщение пользовательского типа
   *
   * @param message
   * @return
   * @throws Exception
   */
  @GetMapping("/message/{message}")
  public String sendMessage(@PathVariable("message") String message) throws Exception {
    Message messageObject = new Message().setName(message).setAge(12);
    sakaSendClient.send(messageObject);
    return messageObject.getName();
  }

  /**
   * Попытка отправки пустого сообщения
   *
   * @return
   * @throws Exception
   */
  @GetMapping("/empty")
  public String sendEmpty() throws Exception {
    sakaSendClient.send();
    return "success";
  }
} 
  1. Просмотрите журналы отправки сообщений на консоли.

    Используйте параметр debug аннотации @SakaSubscribe для настройки вывода журнала, по умолчанию он не выводится.

//Saka регистрирует приёмники
 Saka ------> Добавить методы execCommand(1) в Saka
 Saka ------> Добавить методы sendClassObject(1) в Saka
 Saka ------> Добавить методы printMessage(0) в Saka
 Saka ------> Добавить методы speak(0) в Saka                
                                                                  
//Saka отправляет сообщения  
 Saka ------> Отправить данные в testMethodes1 успешно             
 Saka ------>  Saka успешно отправил данные 1 раз.           
 Saka -------->  Saka успешно отправил данные 1 раз.           
 Saka ------>  Saka успешно отправил данные 1 раз.           
  1. Включите порядок выполнения приоритетов.

    При настройке приёмника с помощью аннотации @SakaSubscribe вы можете установить приоритет order. Если значение не задано, используется значение по умолчанию OrderConstance.ORDER_NORMALE (5). Чем меньше число, тем выше приоритет и тем раньше оно будет выполнено. Как показано ниже:

  @SakaSubscribe(debug = true,order = OrderConstance.ORDER_HIGHT)
  public void execCommand(String message) {}

  /** Приёмник с одним параметром */
  @SakaSubscribe(debug = true,order = OrderConstance.ORDER_HIGHT)
  public void execCommand(String message) {}

  /** Приёмник с параметром пользовательского типа */
  @SakaSubscribe(order = OrderConstance.ORDER_LOWWER)
  public void sendClassObject(Message message) {}

Кроме того, учитывая производительность, последовательное выполнение приёмников по умолчанию отключено. Вы можете включить эту функцию через файл конфигурации приложения.

  • Файл свойств:
saka.sequence-execute=true
  • YAML-файл:
saka:
  sequence-execute: true
  1. Установите прослушиватель.

В некоторых случаях вы можете настроить прослушиватель для реализации мониторинга состояния выполнения приёмника. Вам нужно только внедрить объект прослушивания в контейнер Spring, и этот Bean должен наследовать интерфейс HandleSubscribeListener. Например:

  @Bean
  public HandleSubscribeListener handleSubscribeListener(){
    return new HandleSubscribeListener() {
      //TODO вернуть результат выполнения
      @Override
      public

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

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

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

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

все

Участники

все

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

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