저는 봄용입니다. 봄의 소스 코드를 읽기 시작합니다.AbstractApplicationContext에서 메소드 start()의 용도는 무엇입니까?
AbstractApplicationContext를 읽었을 때 start() 메서드가 하나 있는데, ApplicationContext가 초기화 될 때 메서드가 호출되지 않는다는 것을 알았습니다.
내 질문 : 1) 방법의 사용법은 무엇입니까? 단어 (시작) 의미에 따르면, 나는 그것이 ApplicationContext가 작동하기 전에 호출되어야한다고 생각한다. 그러나 그렇지 않습니다.
2) 어떻게 시작하는 applicationContext 이벤트를들을 수 있습니까? 코드를 읽은 후, 메소드가 ContextStartedEvent를 공개한다는 것을 알았습니다. 하지만 컨텍스트를 초기화하는 경우 컨텍스트는 여전히 작동 할 수 있으며 이벤트를 게시하지 않습니다. 이벤트를 수신하여 applicationcontext의 시작을 추적 할 수 없습니다.
내 이해하는 방법이다 LifecycleProcessor 인터페이스를 구현
lifecycleProcessor
라는 맥락에서 콩이 단지입니다 않는 한그런 다음
이
모든 DefaultLifecycleProcessor으로, 기본적으로 처리됩니다 라이프 사이클을위한 간단한 구현? 사용자가 자체 구현을 정의하지 않은 경우에 맞습니까? – ChandlerSongSpring 내에서 사용되는 'Lifecycle' 인터페이스의 일부이며, 필요에 따라 자신의 클래스에서 사용할 수 있습니다. 기본적으로 컨텍스트에 등록 된 bean이'Lifecycle'을 구현하면 필요한 경우'start' 및'stop' 메소드가 호출됩니다. 일반적으로'ApplicationContext'는 이런 식으로'start' 될 필요는 없습니다. 'refresh '를 호출하는 것이 가장 빈번하다. 'Lifecycle' 인터페이스와 일치하는 라이프 사이클을 필요로하는 컴포넌트가 있다면, 좋은 선택입니다. – ptomli
이미 약간 관련있는 질문이 있습니다. http://stackoverflow.com/questions/5333189/is-it-neccesary-to-call-applicationcontext-start – ptomli