spring @EventListener 事件與監聽

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

}
相關文章
相關標籤/搜索