package com.spring.infra.quartz; import javax.sql.DataSource; import org.quartz.Job; import org.quartz.Scheduler; import org.quartz.spi.JobFactory; import org.quartz.spi.TriggerFiredBundle; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.quartz.SchedulerFactoryBean; import org.springframework.transaction.PlatformTransactionManager; import lombok.RequiredArgsConstructor; /** * Quartz 스케줄러 설정을 위한 구성 클래스입니다. * *
이 클래스는 Quartz 스케줄러의 기본 설정을 제공하며, 다음과 같은 기능을 수행합니다:
*이 메소드는 Spring의 AutowireCapableBeanFactory를 사용하여 * Quartz Job 인스턴스에 자동으로 의존성을 주입합니다.
* * @param beanFactory Spring의 AutowireCapableBeanFactory * @return 생성된 JobFactory 인스턴스 */ @Bean JobFactory jobFactory(AutowireCapableBeanFactory beanFactory) { return (TriggerFiredBundle bundle, Scheduler scheduler) -> { Job job = beanFactory.createBean(bundle.getJobDetail().getJobClass()); beanFactory.autowireBean(job); return job; }; } /** * Quartz Scheduler를 생성하고 설정하는 SchedulerFactoryBean을 구성합니다. * *이 메소드는 다음과 같은 설정을 수행합니다:
*