讲述了JavaSpring:事件,使用实现ApplicationListener来监听自定义事件
树图思维导图提供 JavaSpring-事件 在线思维导图免费制作,点击“编辑”按钮,可对 JavaSpring-事件 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:27f5a3bf195efdb1935df375718acdb6
JavaSpring-事件思维导图模板大纲
流程:
(1)自定义事件,集成ApplicationEvent。
(2)定义事件监听器,实现ApplicationListener。
(3)使用容器发布事件。
(1)自定义事件。
package com.wisely.highlight_spring4.ch2.event; public class DemoEvent extends ApplicationEvent{ private static final long serialVersionUID = 1L; private String msg; public DemoEvent(Object source,String msg) { super(source); this.msg = msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
(2)事件监听器。
package com.wisely.highlight_spring4.ch2.event; @Component //1 实现ApplicationListener接口,并指定监听的事件类型。 public class DemoListener implements ApplicationListener<DemoEvent> { //2 使用onApplicationEvent方法对消息进行接受处理。 public void onApplicationEvent(DemoEvent event) { String msg = event.getMsg(); System.out.println("我(bean-demoListener)接收到了bean-demoPublisher发布的消息:"+ msg); } }
(3)事件发布类。
package com.wisely.highlight_spring4.ch2.event; @Component public class DemoPublisher { @Autowired ApplicationContext applicationContext; //1 public void publish(String msg){ applicationContext.publishEvent(new DemoEvent(this, msg)); //2 } }
(4)配置类。
package com.wisely.highlight_spring4.ch2.event; @Configuration @ComponentScan("com.wisely.highlight_spring4.ch2.event") public class EventConfig { }
(5)运行。
package com.wisely.highlight_spring4.ch2.event; public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(EventConfig.class); DemoPublisher demoPublisher = context.getBean(DemoPublisher.class); demoPublisher.publish("hello application event"); context.close(); } }
输出
我(bean-demoListener)接收到了bean-demoPublisher发布的消息:hello application event
树图思维导图提供 岳阳楼记思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 岳阳楼记思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:cdf9fe56f6de89b0f287dc246d132795
树图思维导图提供 网络事件营销思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 网络事件营销思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:d7faeffbbb947294bcf3342e0ef44db9