一、自定義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, "測試")); } }