반응형
__ 스프링 레거시(전자정부) 에서 스케쥴링 사용하는 방법
__ xml 을 이용한 방법과 어노테이션 이용한 방법 __
way 1. XML
src/main/resources/egovframework/spring
위치에context-scheduling.xml
생성
context-scheduling.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" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd">
<task:scheduler id="baseScheduler" pool-size="10" />
</beans>
method setting
위 코드 그대로 생성 후 스케쥴링 원하는 클래스와 메소드를 아래와 같이 매핑
<bean id="원하는빈아이디" class="main.util.scheduler.Scheduler" />
<task:scheduled-tasks scheduler="baseScheduler">
<task:scheduled ref="원하는빈아이디" method="원하는메소드명" cron="0 20 * * * ?" /> <!-- 한시간 간격으로 매 시 10분에 동작-->
</task:scheduled-tasks>
How to use
package main.util.scheduler;
public class Scheduler {
public void test(){
System.out.println(LocalDate.now());
}
}
결과 확인
way 2. @annotation
@Scheduled(cron = "0 0 5 * * *")
어노테이션과 cron 표현식으로 수행하는 방법
이를 위해서는 우선 dispatcher-servlet.xml
파일에 설정을 해줘야 함
dispatch-servlet.xml
<!-- scheduler -->
<context:component-scan base-package="main" />
<task:scheduler id="jobScheduler" pool-size="10"/>
<task:annotation-driven scheduler="jobScheduler"/>
base-package
만 실제 메인으로 사용중인 패키지명 입력 나머진 그대로 둬도 댐
원하는 메소드에서 어노테이션을 이용해 스케쥴링 실행
@Scheduled(cron = "0/5 * * * * *")
public void test(){
System.out.println(LocalDate.now());
}
결과 확인
반응형
'Spring > Spring (Legacy)' 카테고리의 다른 글
[전자정부] @Transactional 설정하기 (xml) (0) | 2024.11.06 |
---|---|
[전자정부] RestController / ResponseBody 응답 404 일때 (0) | 2024.10.22 |
마이바티스 result 로 vo 2개 설정하기 (0) | 2024.07.10 |
[전자정부 Egov] Swagger 적용방법(스프링 레거시) (1) | 2024.05.28 |
스프링 현재 Session 값 확인 (0) | 2024.05.05 |