|
9 | 9 | package org.bekit.event.boot; |
10 | 10 |
|
11 | 11 | import org.bekit.event.EventPublisher; |
12 | | -import org.bekit.event.bus.EventBusHolder; |
| 12 | +import org.bekit.event.bus.EventBusesHolder; |
13 | 13 | import org.bekit.event.extension.support.BizListenerType; |
14 | | -import org.bekit.event.listener.ListenerHolder; |
| 14 | +import org.bekit.event.listener.ListenersHolder; |
15 | 15 | import org.bekit.event.publisher.DefaultEventPublisher; |
16 | 16 | import org.springframework.context.annotation.Bean; |
17 | 17 | import org.springframework.context.annotation.Configuration; |
| 18 | +import org.springframework.context.annotation.DependsOn; |
| 19 | +import org.springframework.context.annotation.Import; |
18 | 20 |
|
19 | 21 | /** |
20 | 22 | * 事件总线配置类 |
21 | 23 | * (非spring-boot项目需手动引入本配置类完成事件总线配置) |
22 | 24 | */ |
23 | 25 | @Configuration |
| 26 | +@Import({EventBusesHolder.class, ListenersHolder.class}) |
24 | 27 | public class EventBusConfiguration { |
25 | 28 |
|
26 | 29 | // 业务事件发布器 |
27 | 30 | @Bean |
28 | | - public EventPublisher eventPublisher(EventBusHolder eventBusHolder) { |
29 | | - return new DefaultEventPublisher(eventBusHolder.getEventBus(BizListenerType.class)); |
30 | | - } |
31 | | - |
32 | | - // 事件总线持有器 |
33 | | - @Bean |
34 | | - public EventBusHolder eventBusHolder() { |
35 | | - return new EventBusHolder(); |
36 | | - } |
37 | | - |
38 | | - // 监听器持有器 |
39 | | - @Bean |
40 | | - public ListenerHolder listenerHolder() { |
41 | | - return new ListenerHolder(); |
| 31 | + @DependsOn("org.bekit.event.bus.EventBusesHolder") // 保证出现循环引用时不会出错 |
| 32 | + public EventPublisher eventPublisher(EventBusesHolder eventBusesHolder) { |
| 33 | + return new DefaultEventPublisher(eventBusesHolder.getEventBus(BizListenerType.class)); |
42 | 34 | } |
43 | 35 | } |
0 commit comments