最近在做一个spring batch的项目,单元测试的时候,想做完以后让实务自动回滚,可就是不能如愿,请大家指点,先谢过了!
这是我的测试类:
public class TestJob extends BaseTest {
@Test
public void testExcelParserTasklet() throws JobParametersInvalidException, JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, NoSuchJobException {
Job job = jobRegistry.getJob("parseExcelJob");
jobLauncher.run(job, new JobParameters());
}
}
@ContextConfiguration("classpath:application-context.xml")
public abstract class BaseTest extends AbstractTransactionalTestNGSpringContextTests
{
@Autowired
protected JobRegistry jobRegistry;
@Autowired
protected JobLauncher jobLauncher;
}
这是执行时的异常:
java.lang.IllegalStateException: Existing transaction detected in JobRepository. Please fix this and try again (e.g. remove @Transactional annotations from client).
at org.springframework.batch.core.repository.support.AbstractJobRepositoryFactoryBean$1.invoke(AbstractJobRepositoryFactoryBean.java:164)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
相关推荐
Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,提供了强大的数据处理能力和事务管理功能。下面我们将深入探讨这个主题。 首先,**Spring ...
Spring Batch提供了与Spring Integration的集成,使批处理作业能够更好地与企业系统集成。通过使用Spring Integration,开发者可以将批处理作业与消息队列、服务调用等集成,从而实现作业与其他系统的交互。 知识点...
6. **对 Spring Boot 的更好支持**:随着 Spring Boot 的广泛使用,Spring Batch 4.0.0 版本与 Spring Boot 集成得更加紧密,简化了配置过程,并提供了更多开箱即用的功能。 7. **性能提升**:在 4.0.0 版本中,...
Spring Batch提供了一套丰富的测试工具,这些工具可以帮助开发者编写单元测试和集成测试来验证批处理作业的行为。 附录部分提供了关于如何搭建开发环境和安装Spring Batch Admin的实用指南。通过这些指南,开发者...
Spring的依赖注入(DI)和AOP特性也能够应用于Spring Batch组件,增强其灵活性和可测试性。 在提供的示例程序中,`SpringBatchTest.txt`和`SpringBatchTest`可能是包含了具体配置文件、样例代码或者是日志记录的...
JSR352支持指的是Spring Batch对Java批处理规范的支持,而Spring Batch Integration模块提供了与Spring Integration框架的集成能力。 附录和术语表则是文档的补充部分,为使用者提供了额外的参考和理解框架所需的...
7. **测试框架**:Spring Batch 提供了专门的测试支持,允许开发者对批处理逻辑进行单元测试和集成测试,确保代码的正确性。 8. **元数据存储**:Spring Batch 使用数据库存储作业和步骤的元数据,这使得作业可以在...
6. **事务管理**:Spring Batch提供事务支持,确保批处理的原子性和一致性。 二、Spring Batch高级特性 1. **分片(Chunk-oriented processing)**:以数据块(Chunk)为单位进行处理,提高处理效率并保证数据一致...
详细说明了如何在不同的环境中启动和控制Spring Batch作业,包括本地测试、集成测试和生产环境下的运行策略。 #### 第7章至第9章:读取器、处理器和写入器 这三章分别介绍了Spring Batch中的三项核心组件:读取器...
Spring Batch Extensions可能提供专门的测试库和工具,使单元测试和集成测试更加便捷。 9. **与Spring Boot集成**:随着Spring Boot的广泛使用,Extensions可能包含开箱即用的配置和 starter,使得在Spring Boot...
此外,Spring Batch 还加强了其与Spring框架的集成,并针对Spring 4和Java 8进行了升级。另一个重要的特性是JobScope的支持,它为开发者提供了更多在单个Step中声明变量的方式。SQLite的支持则意味着Spring Batch ...
在`springBatch5-master`这个压缩包中,你可以期待找到SpringBatch 5版本的相关资料,可能包括源代码、项目结构、配置示例、单元测试、用户手册、API文档等。通过深入研究这些内容,你可以了解到如何创建、配置和...
此外,还可以集成Spring Boot Actuator或Spring Batch Admin等工具进行更高级的监控。 7. **分片和并行处理**:对于大型数据集,Spring Batch支持将工作拆分为多个并行的子任务,即分片(Chunking)。通过这种方式...
SpringBatch 是一个由 Spring 社区开发的轻量级、全面的批处理框架,它为构建强大、可靠的批处理应用程序提供了必要的工具和组件。Spring Batch 基于 Spring Framework,因此具备了 Spring 提供的生产力、面向 POJO ...
- @SpringBatchTest Annotation:简化测试SpringBatch作业的过程。 - @EnableBatchIntegration Annotation:用于集成外部系统,例如使用消息队列。 - JSON support:支持JSON格式的数据处理。 - BeanValidation API ...
### Spring Batch 2.1.8 版本详解 #### 一、Spring Batch 简介 ##### 1.1 背景介绍 Spring Batch 是一个强大的批量处理框架,旨在简化开发大型批量数据处理应用的过程。该框架提供了一种灵活且可扩展的方式来构建...
Spring Batch 的设计旨在解决在执行大量数据处理时经常遇到的问题,如事务管理、作业恢复、跳过机制等。 **1.2 使用场景** Spring Batch 主要适用于以下几种使用场景: - **大数据量处理**:当需要对大量的数据...
Spring Batch 提供了处理大批量数据时所需的基础设施,包括读取、处理和写入数据,以及错误处理和事务管理。在这个“Spring-batch Demo.zip”压缩包中,很可能是包含了一个Spring Batch 的示例项目,用于展示如何在...
**Spring Boot + Spring Batch 批量生成测试数据的Demo详解** Spring Boot 和 Spring Batch 的结合为开发者提供了一个高效且易于管理的批量处理框架。在这个项目中,我们将深入探讨如何利用这两个强大的工具来创建...
- 编写和测试:编写代码实现读取、处理和写入逻辑,然后进行单元测试和集成测试。 - 调度和部署:将作业配置到调度器,如 Quartz,然后部署到生产环境。 通过这个简单的 Spring Batch 示例项目,你可以了解到如何...