Как отправить событие другому бобу весной? - PullRequest
0 голосов
/ 30 августа 2010

Весной это можно сделать. У кого-нибудь есть примеры кода?

Ответы [ 3 ]

1 голос
/ 30 августа 2010

Если вы хотите уведомить бин о чем-то, просто вызовите метод:

@Service
public class Notifier {
    @Autowired
    private Notified notified;

   public void something() {
       notified.notify(..);
   }
}

Но обработка событий обычно асинхронная.В этом случае вам нужно будет создать новую Thread (или использовать среду исполнения начиная с Java 5), ​​передать ссылку на / beject целевого компонента и позволить ему уведомить об этом.

И если вместо этого вы хотите уведомить несколько бинов, не зная точно, то используйте механизм событий , который пружина предоставляет в качестве реализации шаблона наблюдателя.

1 голос
/ 01 сентября 2010

Вы можете использовать Spring Integration для обмена сообщениями между компонентами в вашем контексте.Посмотрите на MessageChannel и ServiceActivator.Вы можете направлять, фильтровать, разбивать сообщения на ваши бины, когда вам нужно.

1 голос
/ 30 августа 2010
if (number % 2 == 0) { // is even

    anotherBean = (AnotherBean) applicationContext.getBean("anotherBean");

    // send even to another bean
    anotherBean.send(number);
}

Для получения дополнительной информации см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...