Spring Boot 자습서 작업 일정
7481 단어 자바spring-boot
환경
Apache Maven 3.6.3
OS: macOS Mojave 버전 10.14.6
텍스트 편집기: VSCode
Java: 11.0.2
만들기
먼저 Spring Initializr 을 열고 다음 내용으로 기초를 만듭니다.
완성된 zip 파일을 압축 해제하고 편집기에서 엽니다.
pom.xml에 다음 종속성을 추가합니다.
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>3.1.2</version>
<scope>test</scope>
</dependency>
Awaitility는 비동기 시스템 테스트를 위한 간단한 도메인 특정 언어(DSL)를 제공하는 라이브러리입니다. ( Introduction to Awaitility 부터)
src/main/java/com/example/schedulingtasks 아래에 ScheduledTasks.java 파일을 작성하십시오.
내용은 다음과 같습니다.
ScheduledTasks.java
package com.example.schedulingtasks;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTasks {
private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
log.info("The time is now {}", dateFormat.format(new Date()));
}
}
fixedRate는 각 호출의 시작 시간부터 측정된 메소드 호출 사이의 간격을 지정합니다. 그 외에도, fixedDeley와 같은 태스크의 완료로부터 호출의 간격을 지정하는 등의 옵션이 있습니다.
@Scheduled
작업을 정기적으로 실행합니다. 옵션을 다양하게 선택할 수 있습니다(아래 표).
주기적으로 실행할 작업에 대해 Scheduled 주석으로 실행 주기를 지정합니다.
이 어노테이션을 지정할 수 있는 것은 인수를 취하지 않는 메소드 뿐입니다. (컴파일 에러는 되지 않습니다만 런타임시 예외가 발생합니다.)
이번에는 fixedRate로 5초마다 태스크를 실행하기로 하겠습니다.
필드
description
fixedDelay
메소드의 마지막 실행 완료 시간으로부터 몇 밀리 세컨드 후에 실행할까.
fixedRate
메서드의 마지막 실행 시작 시간부터 몇 밀리초 후에 실행할 것인가?
initialDelay
메소드의 최초 실행시의 대기 시간.
cron
cron을 작성하여 일정을 설정합니다. zone을 사용하여 시간대 지정도 가능.
(cron="・・・")를 사용하면 보다 고급 설정도 할 수 있습니다.
Logger와 LoggerFactory는 콘솔에 결과를 출력하기위한 것입니다.
LoggerFactory.getLogger() 의 인수에 클래스를 지정하면 로그를 표시할 수 있습니다.
그런 다음 src/main/java/com/example/schedulingtasks/아래에 자동으로 만들어진 SchedulingTasksApplication.java 파일에 코드를 추가합니다.
내용은 다음과 같습니다.
SchedulingTasksApplication.java
package com.example.schedulingtasks;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class SchedulingTasksApplication {
public static void main(String[] args) {
SpringApplication.run(SchedulingTasksApplication.class);
}
}
@SpringBootApplication
이것 1개로 3분의 어노테이션의 기능을 해 주는 편리한 어노테이션입니다. 다음 세 가지 주석이 포함되어 있습니다.
@Configuration
컨텍스트에 추가 Bean을 등록하거나 추가 구성 클래스를 가져올 수 있습니다.
@Bean
@Bean을 기술한 메소드로 인스턴스화한 클래스를 돌려주기 위한 것입니다.
@EnableAutoConfiguration
Spring Boot의 자동 구성 메커니즘을 활성화합니다.
@ComponentScan
패키지 내의 다른 컴퍼넌트나 설정등을 찾아, 컨트롤러를 찾아내도록 Spring에 지시합니다.
@EnableScheduling
일정을 사용합니다.
실행하다
이상으로 코드는 완성되었습니다.
바로 다음 명령으로 실행해 보겠습니다.
./mvnw spring-boot:run
5초마다 작업이 실행 중입니다.
종속성도 특별히 추가하지 않고도 쉽게 만들 수있었습니다!
Reference
이 문제에 관하여(Spring Boot 자습서 작업 일정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mojirico/items/3f6083ebec8dd0ecea89텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)