Spring

웹 서버가 Spring 부팅에서 HTTP를 노출하기 전에 코드가 실행되는지 확인하십시오.

기록만이살길 2021. 3. 19. 07:04
반응형

웹 서버가 Spring 부팅에서 HTTP를 노출하기 전에 코드가 실행되는지 확인하십시오.

1. 질문(문제점):

스프링 부트 웹 애플리케이션에서 임베디드 웹 서버 (tomcat)가 들어오는 요청을 수신하기 전에 일부 코드가 실행되도록 할 수 있습니까?

REST API의 요청이 애플리케이션에서 응답하기 전에 실행해야하는 데이터베이스 마이그레이션 스크립트가 있습니다. 어떻게 할 수 있습니까? 지금은 마이그레이션 스크립트 구성 요소가 @EventListener사용 ContextRefreshedEvent하지만 너무 늦습니다. 다음 줄은 이전에 이미 기록되었습니다.

osbwembedded.tomcat.TomcatWebServer : Tomcat이 포트에서 시작되었습니다 : 8091 (http) 컨텍스트 경로 ''

2. 해결방안:

데이터베이스 (저장소)에 연결하는 데 사용하는 Bean에서 @PostConstruct 메소드를 사용하고 스크립트를 실행하는 데 필요한 코드를 작성할 수 있습니다.이 코드는 Bean이 생성 된 후 서버가 실행되기 전에 실행됩니다.

예 : https://www.baeldung.com/spring-postconstruct-predestroy

65564839
반응형