08-SpringBoot——Spring常用配置-事件
来源:互联网 发布:分布式通信 java 编辑:程序博客网 时间:2024/05/21 06:54
Spring常用配置-事件
【博文目录>>>】
【项目源码>>>】
【事件】
Spring 的事件( Application Event )为Bean 与Bean 之间的消息通信提供了支持。:当一个Bean 处理完一个任务之后,希望另外一个Bean 知道并能做相应的处理,这时我们就需要让另外一个Bean 监听当前Bean 所发送的事件。
Spring 的事件需要遵循如下流程:
(1)自定义事件,集成ApplicationEvent。(2)定义事件监听器,实现ApplicationListener。(3)使用容器发布事件。
【代码实现】
package com.example.spring.framework.event;import org.springframework.context.ApplicationEvent;/** * 自定义事件 * * Author: 王俊超 * Date: 2017-07-11 07:33 * All Rights Reserved !!! */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; }}
package com.example.spring.framework.event;import org.springframework.context.ApplicationListener;import org.springframework.stereotype.Component;/** * 事件监听器 * 实现ApplicationListener 接口,并指定监听的事件类型。 * Author: 王俊超 * Date: 2017-07-11 07:37 * All Rights Reserved !!! */@Componentpublic class DemoListener implements ApplicationListener<DemoEvent> { /** * 使用onApplicationEvent 方法对消息进行接受处理。 * * @param event */ @Override public void onApplicationEvent(DemoEvent event) { String msg = event.getMsg(); System.out.println("我(bean-demoListener)接受到了bean-demoPublisher发布的消息:" + msg); System.out.println("发生事件的对象是:" + event.getSource()); }}
package com.example.spring.framework.event;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.stereotype.Component;/** * 事件发布类 * ①注入ApplicationContext用来发布事件。 * ②使用ApplicationContext的publishEvent方法来发布。 * Author: 王俊超 * Date: 2017-07-11 07:38 * All Rights Reserved !!! */@Componentpublic class DemoPublisher { @Autowired ApplicationContext applicationContext; public void publish(String msg) { applicationContext.publishEvent(new DemoEvent(this, msg)); }}
package com.example.spring.framework.event;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/** * Author: 王俊超 * Date: 2017-07-11 07:39 * All Rights Reserved !!! */@Configuration@ComponentScan("com.example.spring.framework.event")public class EventConfig {}
package com.example.spring.framework.event;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/** * Author: 王俊超 * Date: 2017-07-11 07:32 * All Rights Reserved !!! */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(); }}
【运行结果】
阅读全文
2 0
- 08-SpringBoot——Spring常用配置-事件
- 04-SpringBoot——Spring常用配置-Bean的Scope
- 07-SpringBoot——Spring常用配置-Profiles
- 12-SpringBoot——Spring MVC基础-常用配置
- 05-SpringBoot——Spring常用配置-Spring EL和资源调用
- 06-SpringBoot——Spring常用配置-Bean的初始化和销毁
- 【Spring】Spring常用配置-事件(Application Event)
- 11-SpringBoot——Spring MVC基础-常用注解
- spring boot初探(二)——springboot配置log4j
- 02-SpringBoot——Spring基础-Java配置
- SpringBoot——自动配置依赖[spring-boot-starter-XXX]
- SpringBoot学习-第二章 常用配置方式-<Spring Boot 实战>
- SpringBoot常用配置
- SpringBoot常用配置介绍
- SpringBoot常用配置介绍
- springboot 常用配置
- Springboot的常用配置
- springboot常用配置
- HTML CSS:Meeting the Media
- SpringBoot+ActiveMQ多消息队列监听
- Activity的四种启动模式
- JStorm与Storm源码分析(八)--计时器工具-mk-timer
- 202. Happy Number
- 08-SpringBoot——Spring常用配置-事件
- shell脚本的8种字符串截取方法
- 接口
- Hot Bath
- Go 基础语言学习笔记
- Activity转场动画效果
- JDK日志框架源码分析(一)
- springmvc属性编辑器和自定义参数解析器
- C语言——define的用法归纳