티스토리 뷰
728x90
1. CommandLineRunner는 스프링 부트가 제공하는 단순한 인터페이스이다
package org.springframework.boot;
public abstract interface CommandLineRunner {
public abstract void run(java.lang.String... args) throws java.lang.Exception;
}
2. 이 클래스를 구현하여 run메소드를 작성하면 프로그램 기동시에 ApplicationContext 생성이 종료된 후에 run메소드가 자동으로 실행된다.
3. 초기화 명령을 담는 곳으로 사용되며 주로 개발 시에 간단한 테스트 용도로 이용된다.
4. 사용법이 간단하기 때문에 기동 클래스에서 상속하여 사용하는 경우가 많지만 separate concern을 고려하면 분리하는 게 낫다.
4-1 command runner 클래스 @Component로 자동생성을 지정해야 동작한다.
package pe.pilseong.springdepth.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;
import pe.pilseong.springdepth.entity.User;
import pe.pilseong.springdepth.repository.UserRepository;
@Component
@Slf4j
public class UserCommandLineRunner implements CommandLineRunner {
@Autowired
private UserRepository userRepository;
@Override
public void run(String... args) throws Exception {
userRepository.save(new User("Pilseong", "Admin"));
userRepository.save(new User("Suel", "User"));
userRepository.save(new User("Noel", "Admin"));
userRepository.save(new User("Sangmi", "User"));
for (User user : userRepository.findAll()) {
log.info(user.toString());
}
}
}
4-2 Main 클래스
package pe.pilseong.springdepth;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import lombok.extern.slf4j.Slf4j;
@SpringBootApplication
@Slf4j
public class DemoApplication {
public static void main(String[] args) {
log.info("Starting Main method but before application run");
SpringApplication.run(DemoApplication.class, args);
log.info("Main method after application run");
}
@Profile("dev")
@Bean
public String demo_dev() {
return "demo_dev";
}
@Profile("prod")
@Bean
public String demo_prod() {
return "demo_prod";
}
}
4-3 아래 로그를 보면 main 메소드가 끝나기 전에 CommandLineRunner가 실행됨을 알 수 있다.
4-3-1 필요한 로그만 보기 위해서 아래 설정을 했다.
# logging.level.org.springframework.boot.web=DEBUG
logging.level.root=OFF
logging.level.pe.pilseong.*=INFO
728x90
'Spring > Spring Boot' 카테고리의 다른 글
Spring Boot : 이미지 업로드와 표출 (0) | 2020.08.06 |
---|---|
Spring Boot : Auto Configuration (0) | 2020.07.23 |
Spring Boot : WebJars 사용하기 (0) | 2020.07.07 |
Spring Boot : 내장 서버를 톰캣에서 제티로 변경하기 (0) | 2020.05.27 |
Spring Boot : Security DaoAuthenticationProvider 사용시 @Transactional 처리 (0) | 2020.05.25 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
TAG
- Spring Security
- Spring
- Many-To-Many
- 스프링
- RestTemplate
- WebMvc
- 로그인
- jsp
- one-to-many
- 설정
- 스프링부트
- hibernate
- 매핑
- Rest
- one-to-one
- Security
- 상속
- MYSQL
- Angular
- spring boot
- 자바
- form
- XML
- crud
- 외부파일
- 설정하기
- 하이버네이트
- mapping
- login
- Validation
250x250