我需要從由rootContext管理的bean向由mvcContext管理的bean發送消息/事件。上下文之間的春天交流
我的web應用程序的組成如下: - 在RootContext(的applicationContext):數據庫,道豆類,豆類服務,安全等 - 一個MVC上下文(web.xml中的servlet條目):管理控制器,restcontroller和端點(websocket)
每次創建一個新行(在服務bean中),我都需要向所有活動的websocket會話進行廣播。
我在服務bean中使用ApplicationEventPublisherAware來發布目標bean中的事件和@EventListener來處理它:但事件不會在rootContext之外廣播。
如果我移動mvcContext中的服務bean,這沒關係 但是我需要rootContext中的服務bean,因爲另一個組件使用它(其他servlet(web.xml中的servlet條目); spring-batch任務;等等..)
我該怎麼辦?
PS:遺憾的英語不好
正確,因爲父級不瞭解子上下文。另一種方式將工作。您可以在您的孩子中創建一個註冊爲根節點的ApplicationListener,然後將事件傳播給子節點。 –
感謝您的確認。但是,在子環境中註冊服務bean還是在子環境中實現ApplicationListener並傳播事件之間的最佳方式是什麼? – chtibob69