1) MAVEN ํ์ฉ ์ (pom.xml)
<!-- Quartz Scheduler 2023-11-30 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.1.7</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
* maven์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ์ WEB-INF/lib์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
2) context-quartz.xml ์์ฑ( ๊ฒฝ๋ก ๋ฐ ํ์ผ๋ช ์ web.xml ์ค์ ํ์ผ ์ฐธ์กฐํ์ฌ ์์ฑ )
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<!-- Spring Quartz -->
<!--
Job : ์ํํ ์์
targetObject : Component๊ฐ<service๋ช
>
targetMethod : ์ค์ผ์ค๋งํ ์์
<service๋ด์ method๋ช
>
Concurrent : ๋์์์
์ฌ๋ถ
-->
<bean id="removeBbsExpDelQuartz" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartz" />
<property name="targetMethod" value="bbsExpDelQuery" />
<property name="concurrent" value="false" />
</bean>
<bean id="insertBbsBodoQuartz" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartz" />
<property name="targetMethod" value="bbsBodoAutoInsert" />
<property name="concurrent" value="false" />
</bean>
<!--
Trigger : job์ ์คํ์ํฌ ์กฐ๊ฑด
jobDetail : ์คํ์ํฌ job
cronExpression : ์คํ์กฐ๊ฑด
-->
<bean id="removeBbsExpDelTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="removeBbsExpDelQuartz" />
<property name="cronExpression" value="*/30 * * * * ?" />
</bean>
<bean id="insertBbsBodoTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="insertBbsBodoQuartz" />
<property name="cronExpression" value="0 */5 * * * ?" />
</bean>
<!-- <property name="cronExpression" value="30 39 10 * * ?" /> -->
<!-- Scheduler : ์ํํ trigger ๋ชฉ๋ก-->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="removeBbsExpDelTrigger" />
<ref bean="insertBbsBodoTrigger" />
</list>
</property>
</bean>
</beans>
์ค์ผ์ค๋ฌ์์ ํ์ฉ๋ service, serviceImpl, dao, vo, xml ๋ฑ๋ฑ์ ๊ฐ์ฒด์์ฑ
- ์ค์ ๋ก ์์ฑ๋์ด ์คํ๋ ๋ฉ์๋๋ฅผ ๋ค๊ณ ์๋ ํด๋์ค์๋ @service("quartz")๋ฅผ ์ ์ธํด์ฃผ์ด์ผํ๋ค.
์ฐธ๊ณ : https://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:fdl:scheduling
'๐ Today I Learned(๊ฐ๋ฐ์ธ์ดํ์ต) > SPRING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SPRING] Spring Framework๋? (0) | 2022.03.22 |
---|