监听事件对象 @Data public class EventDemo { private int id; private String name; }
事件监听器
@Component public class DemoListener { @EventListener(classes = EventDemo.class) private void dd(EventDemo eventDemo){ System.out.println(eventDemo.getId()); System.out.println(eventDemo.getName()); } }
发布时事件 @Component public class EventPublisherDemo implements ApplicationEventPublisherAware { private ApplicationEventPublisher publisher; @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { this.publisher = applicationEventPublisher; } public void publicDemo(EventDemo eventDemo){ publisher.publishEvent(eventDemo); } }
//发布事件
@Autowired private EventPublisherDemo eventPublisherDemo;
@GetMapping("publish") public void publishDemo(@RequestParam("id") Integer id) { EventDemo event = new EventDemo(); event.setName("test"); event.setId(id); eventPublisherDemo.publicDemo(event); }