Class JsonFileItemWriter<T>
- java.lang.Object
- org.springframework.batch.item.ItemStreamSupport
- org.springframework.batch.item.support.AbstractItemStreamItemWriter<T>
- org.springframework.batch.item.support.AbstractFileItemWriter<T>
- org.springframework.batch.item.json.JsonFileItemWriter<T>
- Type Parameters:
T- type of object to write as json representation
- All Implemented Interfaces:
ResourceAwareItemWriterItemStream<T>,ItemStream,ItemStreamWriter<T>,ItemWriter<T>,org.springframework.beans.factory.InitializingBean
public class JsonFileItemWriter<T> extends AbstractFileItemWriter<T>
Item writer that writes data in json format to an output file. The location of the output file is defined by aResourceand must represent a writable file. Items are transformed to json format using aJsonObjectMarshaller. Items will be enclosed in a json array as follows:
The implementation is not thread-safe.[ {json object}, {json object}, {json object} ]- Since:
- 4.1
- Author:
- Mahmoud Ben Hassine
- See Also:
GsonJsonObjectMarshaller,JacksonJsonObjectMarshaller
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.batch.item.support.AbstractFileItemWriter
AbstractFileItemWriter.OutputState
Field Summary
Fields inherited from class org.springframework.batch.item.support.AbstractFileItemWriter
append, DEFAULT_CHARSET, DEFAULT_LINE_SEPARATOR, DEFAULT_TRANSACTIONAL, lineSeparator, logger, shouldDeleteIfExists, state
Constructor Summary
Constructors Constructor Description JsonFileItemWriter(org.springframework.core.io.Resource resource, JsonObjectMarshaller<T> jsonObjectMarshaller)Create a newJsonFileItemWriterinstance.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()Assert that mandatory properties (jsonObjectMarshaller) are set.java.lang.StringdoWrite(java.util.List<? extends T> items)Write out a string of items followed by a "new line", where the format of the new line separator is determined by the underlying operating system.voidsetJsonObjectMarshaller(JsonObjectMarshaller<T> jsonObjectMarshaller)Set theJsonObjectMarshallerto use to marshal object to json.Methods inherited from class org.springframework.batch.item.support.AbstractFileItemWriter
close, getOutputState, open, setAppendAllowed, setEncoding, setFooterCallback, setForceSync, setHeaderCallback, setLineSeparator, setResource, setSaveState, setShouldDeleteIfEmpty, setShouldDeleteIfExists, setTransactional, update, write
Methods inherited from class org.springframework.batch.item.ItemStreamSupport
getExecutionContextKey, setExecutionContextName, setName
Constructor Detail
JsonFileItemWriter
public JsonFileItemWriter(org.springframework.core.io.Resource resource, JsonObjectMarshaller<T> jsonObjectMarshaller)Create a newJsonFileItemWriterinstance.- Parameters:
resource- to write json data tojsonObjectMarshaller- used to marshal object into json representation
Method Detail
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.ExceptionAssert that mandatory properties (jsonObjectMarshaller) are set.- Throws:
java.lang.Exception- See Also:
InitializingBean.afterPropertiesSet()
setJsonObjectMarshaller
public void setJsonObjectMarshaller(JsonObjectMarshaller<T> jsonObjectMarshaller)
Set theJsonObjectMarshallerto use to marshal object to json.- Parameters:
jsonObjectMarshaller- the marshaller to use
doWrite
public java.lang.String doWrite(java.util.List<? extends T> items)
Description copied from class:AbstractFileItemWriterWrite out a string of items followed by a "new line", where the format of the new line separator is determined by the underlying operating system.- Specified by:
doWritein classAbstractFileItemWriter<T>- Parameters:
items- to be written- Returns:
- written lines