spring @EventListener 事件与监听

た 入场券 2023-06-14 11:58 88阅读 0赞

1、自定义Application Event

  1. public class MyEvent extends ApplicationEvent {
  2. private static final long serialVersionUID = 1L;
  3. private String data;
  4. public MyEvent(Object source, String data) {
  5. super(source);
  6. this.data = data;
  7. }
  8. public String getData() {
  9. return data;
  10. }
  11. public void setData(String data) {
  12. this.data = data;
  13. }
  14. }

2、自定义监听

  1. @Component
  2. public class MyListener {
  3. private Logger logger = LoggerFactory.getLogger(getClass());
  4. @EventListener // 注意此处
  5. public void handleDemoEvent(MyEvent event) {
  6. logger.info("发布的data为:{}", event.getData());
  7. }
  8. }

3、测试

  1. @RunWith(value = SpringJUnit4ClassRunner.class)
  2. @SpringBootTest(classes = Application.class)
  3. public class ListenerTest implements ApplicationContextAware {
  4. private static Logger logger = LoggerFactory.getLogger(ListenerTest.class);
  5. private ApplicationContext context = null;
  6. @Override
  7. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  8. this.context = applicationContext;
  9. }
  10. @Test
  11. public void listener() {
  12. context.publishEvent(new MyEvent(this, "测试"));
  13. }
  14. }

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring事件发布监听

    > 最近算是把spring整体的又过了一遍,发现很多东西虽然用的多,但是有些思想理解的不够透彻,在此记录下, > > 顺便感叹下,spring源码看了大部分,这才没过多久又忘