`
hk200
  • 浏览: 49787 次
  • 来自: SH
最近访客 更多访客>>
社区版块
存档分类
最新评论

spring 中事件处理用例

阅读更多

使用spring 事件非常简单

首先继承 ApplicationEvent

public class SampleEvent extends ApplicationEvent {
    private String otherProperty;


    public String getOtherProperty() {
        return otherProperty;
    }

    public void setOtherProperty(String otherProperty) {
        this.otherProperty = otherProperty;
    }

    public SampleEvent(Object source) {
        super(source);    //To change body of overridden methods use File | Settings | File Templates.
    }
}

然后做 SampleEventListener 实现 ApplicationListener

public class SampleEventListener implements ApplicationListener {
    protected Log log = LogFactory.getLog(this.getClass());

    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof SampleEvent) {
            SampleEvent se = (SampleEvent) event;
            System.out.println(se.getOtherProperty());
            log.debug(se.getOtherProperty());

        }
    }
}

然后实现 SampleEventPublisher 发布 事件

public class SampleEventPublisher implements ApplicationContextAware {
    private ApplicationContext ctx;


    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

        this.ctx = applicationContext;

    }

    public void publishAction(String otherProperty) {
        SampleEvent se = new SampleEvent(this);
        se.setOtherProperty(otherProperty);

        ctx.publishEvent(se);

    }

}

applicationContext 配置

<beans></beans>
    <bean class="com.test.spring.applicationEvent.SampleEventListener"></bean>
    <bean class="com.test.spring.applicationEvent.SampleEventPublisher" id="samplePublisher"></bean>

 

做 Test 测试

 

public class SampleEventTest extends TestCase {
    protected void setUp() throws Exception {
        super.setUp();    //To change body of overridden methods use File | Settings | File Templates.
    }

    public void testSampleEventPublish() {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        SampleEventPublisher sep = (SampleEventPublisher) ctx.getBean("samplePublisher");
        sep.publishAction("this is sample property");


    }

}

 

 

分享到:
评论

相关推荐

    spring环境搭建基础用例

    由于Spring已经处理了依赖关系,所以当我们获取`myBean`时,其依赖的`anotherBean`也会被自动创建并注入。 6. **测试与运行**:在完成上述步骤后,你可以编写JUnit测试或主函数来运行和验证你的应用。确保所有依赖...

    spring+redis整合用例

    Spring Data Redis提供了`MessageListenerAdapter`来处理订阅逻辑。 在实际开发中,通过以上步骤,我们可以构建一个高效且易于维护的Spring+Redis应用。例如,对于电商网站,可以将热门商品信息存储在Redis中,当...

    Spring mvc jar [另附本人测试用例]

    在测试用例中,可能会包含以下内容: - 单元测试:针对Controller中的具体方法进行测试,确保它们能够正确处理请求并返回预期的结果。 - 集成测试:模拟完整的HTTP请求,测试整个Spring MVC流程,包括...

    Spring简单用例所需jar

    在"Spring简单用例所需jar"这个压缩包中,通常包含了运行Spring基本示例所需的库文件。这些库文件使得开发者能够快速搭建一个基本的Spring环境,进行学习或开发工作。 首先,我们来了解一下Spring框架的核心概念: ...

    Mybatis1.2.2与spring4.1.6整合,带测试用例

    在IT行业中,Mybatis和Spring框架的整合是常见的开发实践,尤其在企业级应用中,它们的结合可以提供强大的数据访问能力。本项目是关于Mybatis1.2.2版本与Spring4.1.6版本的整合教程,还包含了一个完整的测试用例,...

    spring-batch分区处理示例

    5. **监听器和事件**:Spring Batch允许添加监听器来跟踪分区过程中的事件,如PartitionStepExecutionListener,以便在子任务开始、结束时记录日志或执行其他操作。 6. **配置文件**:通常,这些配置会在Spring ...

    Spring+SpringMVC+Mybatis 基础环境搭建工程(带测试用例)

    在本项目中,Spring4.3.2版本提供了这些基础服务,并且可以管理Bean的生命周期,处理事务控制,以及与其它框架如SpringMVC的集成。 2. **SpringMVC**:作为Spring框架的一部分,SpringMVC是一个用于构建Web应用程序...

    spring事务案例分析.zip

    6. **事务的异常处理**:在Spring事务管理中,异常处理是至关重要的。通常,我们可以配置全局事务异常处理器,例如使用@ControllerAdvice和@ExceptionHandler注解,来统一处理事务回滚和错误反馈。 7. **案例分析**...

    spring3使用示例

    Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一个全面的基础设施,支持bean管理、依赖注入、面向切面编程(AOP)、数据访问/对象关系映射(DAO)、Web MVC等。Spring3作为其早期的一个版本,虽然...

    web flow的购物车用例

    在这个购物车用例中,我们将深入探讨如何使用SWF 2.0实现一个简单而实用的购物车功能。 1. **Spring Web Flow 基础** - **定义流程**:SWF允许开发者定义清晰的流程状态和转换,使得用户在应用中导航时的行为可以...

    spring 5.2.9 07 源码分析-spring的bean工厂准备工作 测试用例

    在这个测试用例中,`@SpringBootTest`注解启动了一个应用上下文,`@Autowired`注解注入了`MessageService` Bean,然后在`testMessage`方法中验证了Bean的正确配置和功能。 总之,Spring的Bean工厂准备工作涉及Bean...

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。

    常用测试用例

    在Spring MVC项目中,测试用例可能涵盖以下几个方面: 1. **控制器测试**:测试Controller层的处理方法,确认HTTP请求能被正确地路由并返回期望的结果。可以使用MockMVC进行无服务器环境的测试,模拟HTTP请求并验证...

    Spring中自定义session管理,SpringSession的使用

    2. 替换默认Session:在`WebSecurityConfigurerAdapter`的配置中,替换默认的`SessionAuthenticationStrategy`,以确保SpringSession处理Session认证。 3. 使用Session:在Controller方法中,可以使用`@...

    springboot helloworld程序(带简单测试用例)

    在这个例子中,`@RestController`注解表明这是一个处理HTTP请求的控制器,而`@GetMapping("/hello")`定义了一个处理GET请求的映射,当访问"/hello"路径时,将返回"Hello, World!"。 构建SpringBoot应用还需要一个主...

    spring webflow 2.0所有最新开发包及文档和用例

    在2.0版本中,它提供了强大的功能,包括流程建模、流程控制、异常处理和回退策略等。下面我们将深入探讨Spring Webflow 2.0中的关键知识点。 首先,**流程建模**是Spring Webflow的核心。它允许开发者通过XML定义...

    spring boot 异常处理方案

    在Spring Boot应用中,异常处理是一项关键任务,它确保了程序在遇到错误时能优雅地响应,提供有意义的反馈信息,而不是返回不友好的堆栈跟踪。本项目"spring boot 异常处理方案"提供了对Spring MVC应用程序中异常...

    spring data redis 小例子

    在Spring Data Redis中,你可以定义Repository接口来操作Redis中的数据,这些接口会自动被Spring Data处理并生成实际的Redis操作。例如,你可以创建一个`PersonRepository`接口,包含`save()`, `findAll()`, `...

    Spring MVC 4.2.4.RELEASE 中文文档

    DispatcherServlet 的处理流程则解释了请求在 Spring MVC 中的处理过程,包括请求的接收、处理以及响应的生成。 控制器的实现部分通过使用@Controller 注解定义了一个控制器类,并通过@RequestMapping 注解映射请求...

    Spring in Action 中文第四版

    书中会介绍如何编写和执行Spring应用的测试用例。 此外,书中还会涵盖持续集成、RESTful API设计、WebSocket等现代Web开发技术,以及如何将Spring应用部署到云平台。对于想要深入理解Spring框架并提升实践能力的...

Global site tag (gtag.js) - Google Analytics