Пружинная партия GZIP ItemWriter / ItemReader - PullRequest
2 голосов
/ 13 января 2020

У меня есть загрузочное приложение Spring, и я написал несколько ItemWriter и ItemReaders, например, для файлов JSON и CSV.

Я хочу добавить шаг сжатия в GZIP и распаковки из GZIP.

Я хотел знать, возможно ли это сделать как обычно с JavaStreams -

Если у меня есть какой-либо InputStream или OutputStream, я могу украсить его другим потоком (т. Е. Другой поток может получить его в его конструкторе и используйте его), и таким образом легко получить все функциональные возможности потоков.

Можно ли это сделать с помощью Spring ItemWriter и ItemReader?

Иначе, как лучше добавить сжатие и распаковку для существующих писателей и читателей?

1 Ответ

1 голос
/ 17 января 2020

Учитывая, что других ответов пока нет ... позвольте мне предложить решение ...

Не составит труда использовать Pattern Decorator Pattern , чтобы получить результат / вход сжат или распакован в ItemWriter и ItemReader, соответственно. перезапускаемость заданий, использующих декорированные ItemWriter и ItemReader, однако, может быть скомпрометирована.

... что является лучшим способом добавления сжатия и распаковки для существующих писателей и читателей?

Я бы предложил отдельный шаг - TaskletStep - с помощью Tasklet , чтобы сделать только сжатие / декомпрессия.

...