Configurando Step
Atualizado
Atualizado
No último exemplo, o nosso Step foi feito em tasklet (mais simples), dessa vez será em chunks.
Já sabemos que o chunk possui algumas etapas (leitura, processamento e escrita), utilizando o ItemReader, Processor e Writer.
Eles são injetados no construtor. Só tem um problema, essas interfaces elas possuem um tipo, qual usar?
No caso em pauta, estamos fazendo uma requisição de uma API remota de clients. Se verificarmos o ClientDTO, podemos observar os seus atributos:
Vamos criar uma classe espelho dessa ClientDTO! Ela não precisa ter o mesmo nome, mas precisa ter os mesmos atributos.
Assim, quando formos fazer a leitura, podemos pegar todos os campos dessa API remota a ser consultada.
Só criar um pacote dto e uma classe UserDTO.
Entenda, esse UserDTO será uma cópia fiel dos dados que iremos buscar na API remota.
Agora sim! Voltando para o Step, o ItemReader terá seu tipo de UserDTO.
Para definir o tamanho do chunk, só colocar no application.properties e criar uma variável dentro da classe Step.
Quando formos buscar os dados na API remota, será utilizando o valor do chunkSize (de 10 em 10, por exemplo).
❗O valor do chunk precisa ser em função do tamanho da página a ser pesquisada.
Exemplo: se o Size da URI for 10 e o chunksize for 5, teremos dois chunks.