日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBatch 写文件JSON(JsonFileItemWriter)用法(十二)

發布時間:2025/1/21 javascript 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBatch 写文件JSON(JsonFileItemWriter)用法(十二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、抽取寫出json文件公共writer
    • 二、processor
    • 三、配置寫json文件job
    • 四、執行job

前言:在一些業務場景中,可能需要寫出json,來做業務邏輯處理,SpringBatch已經幫我們封裝好了寫出JSON的writer

SpringBatch其它文章直通車:

  • SpringBatch讀單個文件(FlatFileItemReader)和寫單個文件(FlatFileItemWriter)(一)
  • SpringBatch順序讀取多文件(MultiResourceItemReader)和順序寫文件(MultiResourceItemWriter)(二)
  • SpringBatch讀數據庫(MyBatisPagingItemReader)(三)
  • SpringBatch讀文件(FlatFileItemReader)寫據庫(MyBatisBatchItemWriter)(四)
  • SpringBatch 監聽器之Job監聽器(JobExecutionListener)和Step監聽器(StepExecutionListener)(五)
  • SpringBatch 監聽器之Chunk監聽器(ChunkListener)和Skip監聽器(SkipListener)(六)
  • SpringBatch 多線程(TaskExecutor)啟動Job詳解 (七)
  • SpringBatch 配置并行啟動Job詳解 (八)
  • SpringBatch 批處理分區(Partitioner )分片(九)
  • SpringBatch tasklet實現和用法(十)
  • SpringBatch 讀取JSON(JsonItemReader)用法(十一)

代碼已上傳GitHub上面地址:https://github.com/FadeHub/spring-boot-learn/tree/master/spring-boot-springbatch

一、抽取寫出json文件公共writer

該JsonFileItemWriter 將項目的編組委托給 org.springframework.batch.item.json.JsonObjectMarshaller接口。該接口的約定是獲取一個對象并將其marshall為JSON字符串。目前提供兩種實現方式:

Jackson:org.springframework.batch.item.json.JacksonJsonObjectMarshaller

GsonJson:Gsonorg.springframework.batch.item.json.GsonJsonObjectMarshaller

CommonJsonItemWriter 繼承JsonFileItemWriter

package com.sl.common;import org.springframework.batch.item.json.JsonFileItemWriter; import org.springframework.batch.item.json.JsonObjectMarshaller; import org.springframework.core.io.Resource;/*** @author shuliangzhao* @Title: CommonJsonItemWriter* @ProjectName spring-boot-learn* @Description: TODO* @date 2019/9/18 19:54*/ public class CommonJsonItemWriter<T> extends JsonFileItemWriter<T> {public CommonJsonItemWriter(Resource resource, JsonObjectMarshaller<T> jsonObjectMarshaller) {super(resource, jsonObjectMarshaller);setResource(resource);setJsonObjectMarshaller(jsonObjectMarshaller);setEncoding("UTF-8");setName("tradeJsonFileItemWriter");} }

二、processor

package com.sl.processor;import com.sl.common.CommonProcessor; import com.sl.entity.CafeCat; import com.sl.entity.Cat; import org.springframework.batch.core.configuration.annotation.StepScope; import org.springframework.stereotype.Component;/*** @author shuliangzhao* @Title: CatWriteJsonProcessor* @ProjectName spring-boot-learn* @Description: TODO* @date 2019/9/18 20:00*/ @Component @StepScope public class CatWriteJsonProcessor extends CommonProcessor<Cat, CafeCat> {@Overridepublic void processor(CafeCat o, Cat cat) {o.setCatname(cat.getCatname());o.setCatage(cat.getCatage());o.setCataddress(cat.getCataddress());} }

三、配置寫json文件job

package com.sl.config;import com.sl.common.CommonFileItemReader; import com.sl.common.CommonJsonItemWriter; import com.sl.entity.CafeCat; import com.sl.entity.Cat; import com.sl.processor.CatWriteJsonProcessor; import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepScope; import org.springframework.batch.item.json.JacksonJsonObjectMarshaller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.FileSystemResource;/*** 讀取csv文件,寫出json* @author shuliangzhao* @Title: CatWriteJsonConfiguration* @ProjectName spring-boot-learn* @Description: TODO* @date 2019/9/18 19:56*/ @Configuration @EnableBatchProcessing public class CatWriteJsonConfiguration {@Autowiredprivate JobBuilderFactory jobBuilderFactory;@Autowiredprivate StepBuilderFactory stepBuilderFactory;@Autowiredprivate CatWriteJsonProcessor catWriteJsonProcessor;@Beanpublic Job catWriteJsonJob() {return jobBuilderFactory.get("catWriteJsonJob").start(catWriteJsonStep()).build();}@Beanpublic Step catWriteJsonStep() {return stepBuilderFactory.get("catWriteJsonStep").<Cat, CafeCat>chunk(10).reader(catReadCsvItemReader()).processor(catWriteJsonProcessor).writer(commonJsonItemWriter()).build();}@Bean@StepScopepublic CommonFileItemReader<Cat> catReadCsvItemReader() {return new CommonFileItemReader<>(Cat.class);}@Bean@StepScopepublic CommonJsonItemWriter commonJsonItemWriter() {FileSystemResource fileSystemResource = new FileSystemResource("D:\\aplus\\shuqian\\source\\"+ CafeCat.class.getSimpleName() + ".json");return new CommonJsonItemWriter(fileSystemResource,new JacksonJsonObjectMarshaller());} }

四、執行job

寫出json文件:

總結

以上是生活随笔為你收集整理的SpringBatch 写文件JSON(JsonFileItemWriter)用法(十二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。