Agendando envio de email com Quartz

Dependência Quartz

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

Queremos que a execução do nosso Job seja agendada, e usaremos o Quartz juntamente com o Spring Batch, configurando a periodicidade do envio de emails.

Como o JobLauncher é responsável pela execução do nosso Job, criaremos um JobLauncher no pacote job. A classe irá se chamar SendBookLoanNotificationScheduleJob. Utilize o código abaixo:

@Configuration
public class SendBookLoanNotificationScheduleJob extends QuartzJobBean {
	
	@Autowired
	private Job job;
	
	@Autowired
	private JobExplorer jobExplorer;
	
	@Autowired
	private JobLauncher jobLaucher;

	@Override
	protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
		JobParameters jobParameters = new JobParametersBuilder(this.jobExplorer).getNextJobParameters(this.job).toJobParameters();
		try {
			this.jobLaucher.run(this.job, jobParameters);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

Atualizado