Este projeto é dedicado ao estudo do Spring Batch e sua integração na estrutura do Spring Framework. Aqui estão alguns dos principais conceitos e configurações que você encontrará neste projeto:
- Configuração de Múltiplos Bancos de Dados: Este projeto demonstra como configurar e utilizar vários bancos de dados para simular uma migração de dados de um banco DB_ORIGEM para um banco DB_DESTINO.
- Migração de Dados: Um dos principais componentes deste projeto é um JOB que realiza a migração de dados. Os dados são lidos de uma tabela de origem (tb_pessoa) e são inseridos nas tabelas de destino (tb_pessoa_destino e tb_usuario_destino).
- Ciclo de Vida do JOB: Além disso, incluímos um JOB dedicado a ajudar no entendimento do ciclo de vida completo de um JOB do Spring Batch, incluindo as etapas do JOB e as interações com seus listeners.
- Utilizando context: Neste exemplo, exploramos o uso do contexto no Spring Batch para ilustrar o funcionamento dos contextos de step e job, enfatizando a capacidade de compartilhar informações entre diversas etapas de uma execução. Vale ressaltar que os valores armazenados no contexto são persistentes nas tabelas 'batch_step_execution_context' e 'batch_job_execution_context', e são recuperados em caso de necessidade de reinicialização do trabalho.
Para obter insights detalhados sobre a arquitetura do projeto, consulte a documentação disponível aqui.🏭
Para configurar e executar o projeto em um ambiente de desenvolvimento, siga o guia detalhado disponível na documentação aqui.
Para uma introdução teórica abrangente sobre o Spring Batch e sua organização de banco de dados, recomendamos a leitura da documentação oficial aqui
Além disso, para um entendimento mais profundo sobre os ciclos de transação do banco de dados e os listeners do Spring Batch, sugerimos a leitura dos seguintes artigos:
- Transactions in Spring Batch – Part 1: The Basics
- Transactions in Spring Batch – Part 2: Restart, cursor based reading and listeners
- Transactions in Spring Batch – Part 3: Skip and retry
Essas referências proporcionarão uma compreensão mais profunda e prática dos conceitos relacionados ao Spring Batch e ao processamento em lotes.