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