`
raymond.chen
  • 浏览: 1450612 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring事件驱动模型概念及使用范例

 
阅读更多

一、概念:

 

二、使用要点:

        事件对象通过继承ApplicationEvent类来定义。

        事件监听者通过实现ApplicationListener接口来定义,并配置到spring容器中,spring容器会自动注册该事件监听器。

        事件发布者可以通过实现ApplicationEventPublisher接口来定义

 

        调用事件发布者的publishEvent方法发布了事件对象后,事件对象会传入到事件监听者的onApplicationEvent方法中。

        业务类通过实现ApplicationEventPublisherAware接口,可以自动植入事件发布者对象。

 

三、范例:

    事件发布者:

@Component
public class TellerEventPublisher implements ApplicationEventPublisher {
	private ApplicationEventPublisher publisher;

	@Override
	public void publishEvent(ApplicationEvent event) {
		publisher.publishEvent(event);
	}

	@Autowired
	public void setApplicationEventPublisher(ApplicationEventPublisher publisher) {
		this.publisher = publisher;
	}
}

 

    事件对象:

public class TellerLoginEvent extends ApplicationEvent {
	public TellerLoginEvent(Object source) {
		super(source);
	}
}

 

    事件监听器:

@Component
public class TellerLoginListener implements ApplicationListener<TellerLoginEvent> {
	@Override
	public void onApplicationEvent(TellerLoginEvent event) {
		ITellerConnection conn = (ITellerConnection) event.getSource();
		TellerLogger.log.info("uid:" + conn.getUid() + " fired login event");
		......
	}
}

 

    发布事件:

public class Test{
	@Autowired
	private TellerEventPublisher publisher;

	public void doSomething(){
		TellerLoginEvent event = new TellerLoginEvent(eventSource);
		publisher.publishEvent(event);
	}
}

 

分享到:
评论

相关推荐

    Maven+spring+spring MVC+Mybatis开发范例

    开发者首先在Eclipse这样的IDE中创建项目,然后配置Maven的POM.xml文件,声明项目所需的依赖,如Spring、Spring MVC、Mybatis和相应的数据库驱动等。接着,开发者会定义Spring的配置文件,包括bean的定义和事务管理...

    spring3.0的最新官方例子源码spring-samples

    通过查看源码,你可以学习到如何使用Spring的JdbcTemplate、HibernateTemplate或者MyBatis的SqlSessionTemplate来简化数据操作。 4. **MVC(Model-View-Controller)**:Spring MVC是Spring提供的Web开发框架,用于...

    Java Web 入门范例

    通过这些范例,初学者可以逐步了解Java Web开发的基本概念,学会如何使用Spring和Hibernate搭建实际项目,并掌握数据库连接的技巧。在实践中,你可以尝试修改代码,观察不同配置和设计决策对程序行为的影响,从而...

    Spring2.5的新特性

    这些新特性包括:注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加...

    activiti 工作流范例

    它基于模型驱动的架构,允许开发者通过图形化的方式设计、部署和管理流程。本工作流范例将帮助你深入理解和应用 Activiti 的核心功能。 首先,我们要了解 Activiti 的核心概念: 1. **流程定义(Process ...

    网络硬盘(Struts 2+Hibernate+Spring实现)

    它提供了模型驱动的编程模型,使得业务逻辑与视图和控制器分离,提高了代码的可维护性和可测试性。在本项目中,Struts 2负责处理HTTP请求,执行相应的动作,并将结果转发到合适的视图。 **Hibernate** 是一个对象...

    基于注解实现springmvc的范例

    在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。本文将深入探讨如何基于注解实现Spring MVC的范例,旨在为初学者提供一个清晰的入门指南。 一、Spring MVC简介 Spring MVC是Spring框架的一部分...

    MVC设计范例,主要用于了解MVC设计详情

    在这个范例中,可能包含数据库驱动配置、连接池初始化以及DAO(Data Access Object)层的实现,用于执行增删改查等数据库操作。 2. **Servlet控制器** 在MVC架构中,Servlet通常作为Controller层,负责接收HTTP...

    《轻松搞定XML》的范例源代码和学习笔记

    SAX是事件驱动模型,逐行读取,适合处理大型XML文件;而StAX是基于流的解析,允许开发者以迭代方式处理XML。 XML还广泛应用于Web服务(如SOAP消息)、配置文件(如Spring框架的bean定义)、数据交换(如RSS和Atom ...

    springrain

    SpringRain是一个轻量级的Spring封装项目,它展示了如何使用Spring框架来构建一个完整的应用程序。该项目本身是一个完整的Eclipse项目,演示了如何利用Spring核心库(Spring Core)、Spring JDBC以及Spring MVC来...

    Java Web 整合开发 完全自学手册 源代码

    这本书旨在帮助读者全面掌握Java Web应用程序的开发技能,从基础到高级,涵盖了一系列核心概念和技术。通过源代码的学习,读者可以更直观地理解并实践这些知识点。 1. **Servlet与JSP**:Java Web开发中的两大基石...

    JAVA WEB程序开发范例宝典14-18章源代码

    在Java Web程序开发中,14到18章通常涵盖了重要的概念和技术,这些章节的源代码可以帮助我们深入理解Web应用程序的构建过程。以下是对这些章节可能涉及的关键知识点的详细解释: 1. **第14章:Servlet技术** - ...

    springmvc实例代码

    在Spring 3及更高版本中,注解成为主流,替代了XML配置。例如,`@Controller`、`@RequestMapping`、`@Service`、`@Repository`等注解用于声明类或方法的作用。这种编程方式使得代码更简洁,减少了大量的XML配置文件...

    Java消息服务(第2版)

    · 使用点对点和出版与订阅消息传递模型建立应用程序 · 使用如事务和持久订阅功能,以使应用程序可靠 · 使用消息驱动的beans在Enterprise JavaBeans(EJB)中实现消息传递 · 使用JMS时结合RESTful应用程序和...

    java-ssm+jsp精品酒销售管理系统实现源码(项目源码-说明文档)

    MAVEN是一个项目管理工具,它基于项目对象模型的概念,通过一个名为POM(Project Object Model)的文件来管理项目的构建、报告和文档。Maven使用特定的约定和配置,简化了构建过程,使得开发者可以更专注于项目的...

    基于Java的yang-onlinevideo在线视频系统设计源码

    JavaScript的异步特性和事件驱动模型使得它在处理用户事件和数据交互时非常高效。 属性文件、HTML文件和PNG图片文件等资源也是构成在线视频系统的重要部分。属性文件通常用于存储系统的国际化资源,如文本消息和...

    java-ssm+jsp病例智能统计与相应预防措施分析系统实现源码(项目源码-说明文档)

    Maven是一个项目管理工具,它基于项目对象模型(POM)概念,可以管理项目构建、报告和文档,并支持多种构建步骤,如编译、测试和打包等。 IDEA和Eclipse作为开发工具,在Java开发领域中享有很高的声誉,它们提供了...

    程序设计实践项目管理系统 SSM毕业设计 源码+数据库+论文(JAVA+SpringBoot+Vue.JS).zip

    SpringMVC是Spring的一个模块,它是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过分离模型、视图和控制器来提高代码的可维护性。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程...

    基于java+springboot+vue+mysql的夕阳红公寓管理系统 源码+数据库+论文(高分毕业设计).zip

    Vue是一种渐进式的JavaScript框架,专门用于构建用户界面,以数据驱动和组件化的思想设计。它能够轻松地与其他库或已有的项目集成,易学易用,且有着高效的性能和虚拟DOM机制。 3. 后端框架:Spring Boot作为后端...

    springboot2182基于springboot的网上服装商城.zip

    同时,它与Spring框架完美结合,使得项目在使用Spring强大的功能时更为便捷。 前端方面,项目采用了Vue.js框架。Vue.js是一个构建用户界面的渐进式JavaScript框架,它使得开发者能够以数据驱动和组件化的思想来构建...

Global site tag (gtag.js) - Google Analytics