[SPRING] 스프링 컨텍스트를로드하지 못한 경우 서버를 중지하는 방법은 무엇입니까?
SPRING스프링 컨텍스트를로드하지 못한 경우 서버를 중지하는 방법은 무엇입니까?
때로는 개발하는 동안 스프링 컨텍스트가로드되지 못하게하는 무언가가 손상됩니다. 문제는 때로는 오류가 일부 bean에만있는 것이지만 webapp의 나머지 부분은 부분적으로로드되고 일부 이상한 동작이 발생한다는 것입니다.
뭔가 나쁜 일이 생길 때 Spring이 서버 프로세스를 멈추게하는 알려진 방법이 있습니까? 어떤 콩이 실패한 주사처럼, 또는 일부 NPE가 PostConstruct 또는 일부에서 발생했습니다.
web.xml에서 stopOnError = true와 같은 것입니다.
해결법
-
==============================
1.그래서 결국 내가 찾은 해결책은 다음과 같습니다. ServletContextListener를 구현하는 클래스를 만들고, ApplicationLoaderListener라고 부릅니다.
그래서 결국 내가 찾은 해결책은 다음과 같습니다. ServletContextListener를 구현하는 클래스를 만들고, ApplicationLoaderListener라고 부릅니다.
web.xml에서이 클래스를 설정합니다.
<listener> <listener-class>com.my.package.ApplicationLoaderListener</listener-class> </listener>
비공개 멤버를 추가하십시오.
private final ServletContextListener loader = new ContextLoaderListener();
이 클래스는 두 인터페이스 메서드를 구현해야하며 관련 인터페이스 메서드는 contextInizialized입니다.
@Override public void contextInitialized(ServletContextEvent sce) { try { loader.contextInitialized(sce); } catch (BeanCreationException e) { handle(e); } }
handle ()의 구현은 다음과 같습니다.
private void handle(BeanCreationException e) { log.error("=============== FATAL =============== - failed to create bean: ", e); System.exit(1); }
코드 완성을 위해 두 번째 방법은 다음과 같습니다.
@Override public void contextDestroyed(ServletContextEvent sce) { loader.contextDestroyed(sce); }
from https://stackoverflow.com/questions/25347593/known-way-to-stop-server-when-spring-context-failed-to-load by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 최대 절전 모드를 사용하여 중첩 된 JSON 데이터를 MySQL 데이터베이스에 저장 (0) | 2019.04.01 |
---|---|
[SPRING] IntelliJ IDEA가 잘못된 XSD를 확인합니다. (0) | 2019.04.01 |
[SPRING] Apache-CXF JAX-WS에서 스프링 보안을 사용하는 방법 (0) | 2019.04.01 |
[SPRING] spring websocket에 연결할 때 사용자에게 메시지를 보내는 방법 (0) | 2019.04.01 |
[SPRING] 스프링 mvc 모든 콩을 선언 싱글 톤 (0) | 2019.04.01 |