스프링 클 라 우 드 CommandLineRunner 인터페이스
4213 단어 SpringSpringBoot
Spring boot 의
CommandLineRunner
인 터 페 이 스 는 응용 초기 화 후 코드 블록 논 리 를 실행 하 는 데 사 용 됩 니 다. 이 초기 화 코드 는 전체 응용 수명 주기 에 한 번 만 실 행 됩 니 다.CommandLine Runner 인 터 페 이 스 를 어떻게 사용 합 니까?
우 리 는 다음 과 같은 세 가지 방식 으로
CommandLineRunner
인 터 페 이 스 를 사용 할 수 있다.1) @ Component 주석 과 함께 사용
이런 사용 방식 은 상당히 간편 하 다. 다음 과 같다.
@Component
public class ApplicationStartupRunner implements CommandLineRunner {
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void run(String... args) throws Exception {
logger.info("ApplicationStartupRunner run method Started !!");
}
}
2) @ SpringBootApplication 주석 과 함께 사용
이런 사용 방식 도 상당히 간단 하 다. 참고 코드 는 다음 과 같다.
@SpringBootApplication
public class SpringBootWebApplication extends SpringBootServletInitializer implements CommandLineRunner {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWebApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootWebApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
logger.info("Application Started !!");
}
}
3) CommandLine Runner 인 터 페 이 스 를 실현 한 Bean
이런 방식 도 대동소이 하 다. 바로
SpringBootApplication
에서 빈 을 정의 하고 빈 을 바 꾸 어 CommandLineRunner
인 터 페 이 스 를 실현 했다. 참고 코드 는 다음 과 같다.ApplicationStartupRunner.java
public class ApplicationStartupRunner implements CommandLineRunner {
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void run(String... args) throws Exception {
logger.info("Application Started !!");
}
}
등록 ApplicationStartupRunner bean
@SpringBootApplication
public class SpringBootWebApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWebApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootWebApplication.class, args);
}
@Bean
public ApplicationStartupRunner schedulerRunner() {
return new ApplicationStartupRunner();
}
}
메모:
CommandLineRunner
인 터 페 이 스 를 실현 할 때 run(String… args)
방법 내부 에 이상 을 던 지면 응용 시작 에 실패 할 수 있 으 므 로 위험한 코드 를 try-catch
코드 블록 에 넣 는 것 을 기억 하 세 요.@ Order 주석 으로 여러 CommandLine Runner 구현 클래스 의 실행 순 서 를 설정 합 니 다.
하나의 응용 프로그램 에 여러 개의
CommandLineRunner
인터페이스 구현 클래스 가 존재 할 수 있 습 니 다. 실행 순 서 를 설정 하려 면 사용 할 수 있 습 니 다. @Order
실현@Order(value=3)
@Component
class ApplicationStartupRunnerOne implements CommandLineRunner {
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void run(String... args) throws Exception {
logger.info("ApplicationStartupRunnerOne run method Started !!");
}
}
@Order(value=2)
@Component
class ApplicationStartupRunnerTwo implements CommandLineRunner {
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void run(String... args) throws Exception {
logger.info("ApplicationStartupRunnerTwo run method Started !!");
}
}
출력 로그:
2017-03-08 13:55:04 - ApplicationStartupRunnerTwo run method Started !!
2017-03-08 13:55:04 - ApplicationStartupRunnerOne run method Started !!
왜 CommandLine Runner 인 터 페 이 스 를 사용 합 니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.