2010-08-30 8 views

Répondre

1
if (number % 2 == 0) { // is even 

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

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

Pour plus d'informations, voir here.

+0

pour quoi faire? – Bozho

+1

C'était une blague, comme la question posée "comment envoyer un même à un autre haricot". – earldouglas

1

Si vous souhaitez notifier un haricot de quelque chose, il suffit d'appeler une méthode:

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

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

Mais la gestion des événements est généralement asynchrone. Dans ce cas, vous devrez créer un nouveau Thread (ou utiliser le executors framework depuis Java 5), ​​passer une référence à/injecter le bean cible et le laisser le notifier.

Et si vous voulez plutôt notifier plusieurs beans, sans savoir exactement quoi, alors utilisez le event mechanism fourni par ce ressort comme une implémentation du modèle d'observateur.

1

Vous pouvez utiliser Spring Integration pour la messagerie entre les beans dans votre contexte. Regardez MessageChannel et ServiceActivator. Vous pouvez acheminer, filtrer, diviser les messages à vos haricots comment vous avez besoin.

Questions connexes