티스토리 뷰
반응형
spring boot 학습 & 세팅 4탄 ~
딱히 부트의 내용도 아니고 간단해서 정리안하려다 .... 간단해서 정리
1. CommandLineRunner
CommandLineRunner 보다는 ApplicationRunner을 사용하자
2. ApplicationRunner
ApplicationArguments를 인자로 받기 때문에 다른 방식에 비해 Arguments 처리가 수월한 장점이 있는 듯
@Component
@Order(2)
public class MyApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("applicationRunner hello");
args.getOptionNames().stream().forEach(name ->
log.info("MyApplicationRunner run.. Options {}={}", name, args.getOptionValues(name))
);
}
}
public interface ApplicationArguments {
String[] getSourceArgs();
Set<String> getOptionNames();
boolean containsOption(String name);
List<String> getOptionValues(String name);
List<String> getNonOptionArgs();
}
3.EventListener
@EventListener를 이용하면 @Async어노테이션을 붙이는 것만으로도 간단하게 비동기로 처리할 수 있고
ApplicationReadyEvent인자를 통해 다양한 처리가 가능하다.
@Configuration
@Slf4j
public class ApplicationReadyEventListener {
@Async
@EventListener
public void ready(ApplicationReadyEvent event) {
log.debug("ApplicationReadyEvent ready ready ready!!");
ConfigurableApplicationContext context = event.getApplicationContext();
SpringApplication springApplication = event.getSpringApplication();
String[] args = event.getArgs();
long eventTime = event.getTimestamp();
}
}
EventListener를 통해 다양한 이벤트를 받을 수 있는데 아래 코드를 통해 발생이벤트들과 호출시점을 확인해 볼수 있다.
@EventListener
public void event(ApplicationEvent event) {
log.debug("{}", event.getClass().getSimpleName());
}
개인적인 정리
편의성에서 차이가 조금 있을 뿐, ApplicationRunner나 EventListener는 별 차이가 없다.
Arguments처리가 조금 복잡하다면 ApplicationRunner로, 비동기 처리를 조금 더 수월하게 하고 싶거나 context접근을 조금 수월하게 하고 싶다면 EventListener방식을이용하자
반응형
'Spring-boot' 카테고리의 다른 글
[Spring boot]Redis - Lettuce 설정 (5) | 2021.05.06 |
---|---|
[Spring boot] Filter 설정 (2) | 2021.04.28 |
[Spring boot]yml configuration (0) | 2021.04.27 |
[Spring boot] undertow (0) | 2021.04.23 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 상속과 구성
- RedisAutoConfiguration
- client socket util
- 자바 전문통신
- 자바 소켓통신
- 추상 팩토리 패턴
- socket connection timeout
- java socket
- 자바 TCP 서버
- 자바 온라인 사천성
- 구성
- 소켓통신 프레임워크
- java socket util
- neso
- 자바 tcp
- 사천성 게임
- 자바 전문서버
- 자바 동기화
- netty
- 클라이언트 소켓 유틸
- 사천성 알고리즘
- 클라이언트 소켓
- socket readtimeout
- 자바 사천성
- 자바 클라이어트 소켓
- 자바소켓
- 디자인 패턴
- 바이트 기반 서버
- 소켓 유틸
- 소켓통신
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함