一、自定义Application Eventjava
public class MyEvent extends ApplicationEvent { private static final long serialVersionUID = 1L; private String data; public MyEvent(Object source, String data) { super(source); this.data = data; } public String getData() { return data; } public void setData(String data) { this.data = data; } }
二、自定义监听app
@Component public class MyListener { private Logger logger = LoggerFactory.getLogger(getClass()); @EventListener // 注意此处 public void handleDemoEvent(MyEvent event) { logger.info("发布的data为:{}", event.getData()); } }
三、测试ide
@RunWith(value = SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) public class ListenerTest implements ApplicationContextAware { private static Logger logger = LoggerFactory.getLogger(ListenerTest.class); private ApplicationContext context = null; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.context = applicationContext; } @Test public void listener() { context.publishEvent(new MyEvent(this, "测试")); } }