当前位置: 首页 > 知识库问答 >
问题:

基于Spring-Batch Java的CSV FileItemWriter

柴宏阔
2023-03-14

我有一个Spring批处理服务,允许ItemWriter将数据写入CSV。我已经使用了Spring Batch Guide给出的示例。https://spring.io/guides/gs/batch-processing/

    null
@Bean
public ItemWriter<Person> writer(DataSource dataSource) {

FlatFileitemWriter<Person> csvWriter = new FlatFileItemWriter<Person>();
csvWriter.setResource(new ClassPathResource("csv/new-data.csv"));
csvWriter.setShouldDeleteIfExists(true);
DelimitedLineAggregator<Person> lineAggregator = new DelimitedLineAggregator<Person>();
lineAggregator.setDelimiter(","); 

BeanWrapperFieldExtractor<Person> fieldExtractor = new BeanWrapperFieldExtractor<Person>();
String[] names = {"firstName", "lastName"};
fieldExtractor.setNames(names);
lineAggregator.setFieldExtractor(fieldExtractor);
csvWriter.setLineAggregator(lineAggregator);
    return csvWriter;
}

共有1个答案

越高峻
2023-03-14

您正在使用ClassPathResource写入。我不确定,但我不认为您可以写入ClasspathResource。请尝试使用普通的FileSystemResource,然后再试一次。

而且,你如何注入作家?您确定它真的被实例化为spring bean吗?既然不需要DataSource来实例化FlatFileItemWriter,为什么要将DataSource作为参数。

 类似资料:
  • Spring Boot使用注释为我们提供了类型化的配置对象。使用Spring Boot annotation Processor时,其优点之一是可以免费在IDE中完成属性名。另一个是:验证。 现在,我想让bean以属性的值为条件。实际上,我有一个接口的两个实现,这个属性告诉我应该使用哪一个。我可以这样实现它: implementation.java 这仍然可以工作,但是当我在这个类中为声明默认值时

  • 建议前: 运行主程序时出现异常(&R): 虽然当我在beforeAdvice()和afterAdvice()方法中给出切入点表达式时,删除切入点方法的所有操作都很好 使用的Jar文件: 使用spring 3.1 Jar

  • 问题内容: 我尝试不使用任何xml。 像这样一个:转换为@Bean 问题在这里。 尝试将“ com.cloudlb.domain.User”转换为Class []无效。 错误:投放问题。 先感谢您。 问题答案:

  • Spring引导2.3.4,Spring安全,固定REST控制器(endpoint)。

  • 我使用Spring Boot开发了这个websocket服务器。服务器与基于js的客户机配合得很好。 控制器: 这是服务器端。现在,对于客户机,我已经创建了一个@ClientEndpoint,当我连接到URI“ws://localhost:8080/spring-mvc-java/chat”时,我能够建立一个连接,并且可以看到@ClientEndpoint的@OnOpen回调被触发。 但是,use

  • 主要内容:运行项目是一种通知类型,可以确保在方法抛出异常时运行一个通知。 以下是通知的语法: 语法 在上面的语法示例中 - - 如果方法返回成功,则将函数标记为在切入点覆盖的方法之前执行的通知。 - 将函数标记为切入点 - 将函数标记为在切入点覆盖的方法之后执行的通知。 - 涵盖应用通知的方法的表达式。 - 返回的异常名称。 要了解上面提到的通知相关的概念,我们写一个Spring AOP基于注解的应用例子,它将使用

  • 主要内容:语法,运行项目是一种通知类型,可以确保方法执行前后的通知运行。 以下是通知的语法: 语法 在上面配置中, - 切入点的id。 - 在调用函数之前调用的函数的方法名称。 要了解上述与周围通知(Around Advice)相关的概念,写一个在实现周围通知(Around Advice)的示例。为了简单,可直接复制之前上一篇文章中的例子,打开并使用Eclipse IDE,并按照以下步骤创建一个Spring应用程序: 更

  • 主要内容:语法,运行项目是一种通知类型,可以确保方法执行前后的通知运行。 以下是通知的语法: 语法 在上面配置中, - 切入点的id。 - 在调用函数之前调用的函数的方法名称。 要了解上述与周围通知(Around Advice)相关的概念,写一个在实现周围通知(Around Advice)的示例。为了简单,可直接复制之前上一篇文章中的例子,打开并使用Eclipse IDE,并按照以下步骤创建一个Spring应用程序: 更