使用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已经处理了依赖关系,所以当我们获取`myBean`时,其依赖的`anotherBean`也会被自动创建并注入。 6. **测试与运行**:在完成上述步骤后,你可以编写JUnit测试或主函数来运行和验证你的应用。确保所有依赖...
Spring Data Redis提供了`MessageListenerAdapter`来处理订阅逻辑。 在实际开发中,通过以上步骤,我们可以构建一个高效且易于维护的Spring+Redis应用。例如,对于电商网站,可以将热门商品信息存储在Redis中,当...
在测试用例中,可能会包含以下内容: - 单元测试:针对Controller中的具体方法进行测试,确保它们能够正确处理请求并返回预期的结果。 - 集成测试:模拟完整的HTTP请求,测试整个Spring MVC流程,包括...
在"Spring简单用例所需jar"这个压缩包中,通常包含了运行Spring基本示例所需的库文件。这些库文件使得开发者能够快速搭建一个基本的Spring环境,进行学习或开发工作。 首先,我们来了解一下Spring框架的核心概念: ...
在IT行业中,Mybatis和Spring框架的整合是常见的开发实践,尤其在企业级应用中,它们的结合可以提供强大的数据访问能力。本项目是关于Mybatis1.2.2版本与Spring4.1.6版本的整合教程,还包含了一个完整的测试用例,...
5. **监听器和事件**:Spring Batch允许添加监听器来跟踪分区过程中的事件,如PartitionStepExecutionListener,以便在子任务开始、结束时记录日志或执行其他操作。 6. **配置文件**:通常,这些配置会在Spring ...
在本项目中,Spring4.3.2版本提供了这些基础服务,并且可以管理Bean的生命周期,处理事务控制,以及与其它框架如SpringMVC的集成。 2. **SpringMVC**:作为Spring框架的一部分,SpringMVC是一个用于构建Web应用程序...
6. **事务的异常处理**:在Spring事务管理中,异常处理是至关重要的。通常,我们可以配置全局事务异常处理器,例如使用@ControllerAdvice和@ExceptionHandler注解,来统一处理事务回滚和错误反馈。 7. **案例分析**...
Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一个全面的基础设施,支持bean管理、依赖注入、面向切面编程(AOP)、数据访问/对象关系映射(DAO)、Web MVC等。Spring3作为其早期的一个版本,虽然...
在这个购物车用例中,我们将深入探讨如何使用SWF 2.0实现一个简单而实用的购物车功能。 1. **Spring Web Flow 基础** - **定义流程**:SWF允许开发者定义清晰的流程状态和转换,使得用户在应用中导航时的行为可以...
在这个测试用例中,`@SpringBootTest`注解启动了一个应用上下文,`@Autowired`注解注入了`MessageService` Bean,然后在`testMessage`方法中验证了Bean的正确配置和功能。 总之,Spring的Bean工厂准备工作涉及Bean...
在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。
在Spring MVC项目中,测试用例可能涵盖以下几个方面: 1. **控制器测试**:测试Controller层的处理方法,确认HTTP请求能被正确地路由并返回期望的结果。可以使用MockMVC进行无服务器环境的测试,模拟HTTP请求并验证...
2. 替换默认Session:在`WebSecurityConfigurerAdapter`的配置中,替换默认的`SessionAuthenticationStrategy`,以确保SpringSession处理Session认证。 3. 使用Session:在Controller方法中,可以使用`@...
在这个例子中,`@RestController`注解表明这是一个处理HTTP请求的控制器,而`@GetMapping("/hello")`定义了一个处理GET请求的映射,当访问"/hello"路径时,将返回"Hello, World!"。 构建SpringBoot应用还需要一个主...
在2.0版本中,它提供了强大的功能,包括流程建模、流程控制、异常处理和回退策略等。下面我们将深入探讨Spring Webflow 2.0中的关键知识点。 首先,**流程建模**是Spring Webflow的核心。它允许开发者通过XML定义...
在Spring Boot应用中,异常处理是一项关键任务,它确保了程序在遇到错误时能优雅地响应,提供有意义的反馈信息,而不是返回不友好的堆栈跟踪。本项目"spring boot 异常处理方案"提供了对Spring MVC应用程序中异常...
在Spring Data Redis中,你可以定义Repository接口来操作Redis中的数据,这些接口会自动被Spring Data处理并生成实际的Redis操作。例如,你可以创建一个`PersonRepository`接口,包含`save()`, `findAll()`, `...
DispatcherServlet 的处理流程则解释了请求在 Spring MVC 中的处理过程,包括请求的接收、处理以及响应的生成。 控制器的实现部分通过使用@Controller 注解定义了一个控制器类,并通过@RequestMapping 注解映射请求...
书中会介绍如何编写和执行Spring应用的测试用例。 此外,书中还会涵盖持续集成、RESTful API设计、WebSocket等现代Web开发技术,以及如何将Spring应用部署到云平台。对于想要深入理解Spring框架并提升实践能力的...