웹 응용 프로그램을 시작할 때 타이머 및 로깅을 초기화하고 싶습니다. ContextListener를 사용할 수 없습니다. 스프링 구성 요소를 포함하고 있지 않기 때문입니다. "afterWebAppHasLoadedAndEverythingyIsSetUp()"와 같은 간단한 후크가 필요합니다. 존재합니까?Java Web App에서 시작 후크를 선언하는 방법
0
A
답변
2
ApplicationContext는 Bean을로드 할 때 특정 유형의 이벤트를 게시합니다.
ApplicationContext의 이벤트 처리는 ApplicationEvent 클래스 및 ApplicationListener 인터페이스를 통해 제공됩니다. 따라서 Bean이 ApplicationListener를 구현하면 ApplicationEvent가 ApplicationContext에 게시 될 때마다 해당 Bean에 통지됩니다.
다음 이벤트
,174 다음과 같이- ContextRefreshedEvent
- ContextStartedEvent
- ContextStoppedEvent
- ContextClosedEvent는
는 우선 만약 ApplicationListener의 구현을 만드는 스프링에 의해 제공된다
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextStartedEvent;
public class CStartEventHandler
implements ApplicationListener<ContextStartedEvent>{
public void onApplicationEvent(ContextStartedEvent event) {
System.out.println("ContextStartedEvent Received");
}
}
그러면 스프링을 사용하여 클래스를 Bean으로 등록하면됩니다.
1
스프링 부트 (권장)를 사용하는 경우 다음 CommandLineRunner 빈을 사용하여 응용 프로그램을 시작한 후 초기화 작업을 실행할 수 있습니다. 당신은 모든 봄 콩을 준비 할 수있을 것입니다, 아래 코드 스 니펫입니다.
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class MyApplication extends SpringBootServletInitializer {
// here you can take any number of object which is anutowired automatically
@Bean
public CommandLineRunner init(MyService service, MyRepository repository) {
// do your stuff with the beans
return null;
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
관련 문제
- 1. Java Web App에서 여러 로그 속성이 실행됩니까?
- 2. Android Web App에서 전화를 시작하는 방법
- 3. Java Web Start 응용 프로그램의 느린 시작
- 4. Azure Web App에서 RBAC 액세스
- 5. Whatsapp Web App에서 공유 하시겠습니까?
- 6. 시작 Mac App에서
- 7. Java Web Start 응용 프로그램 시작 오류.
- 8. Java Web Start의 Java SplashScreen
- 9. iframe을 타겟팅하는 Google Web App에서 오류가 발생했습니다.
- 10. Azure Web App에서 DateTime.TryParse가 실패 함
- 11. Web App에서 기본 URL을 변경하려면 어떻게해야합니까?
- 12. iPhone Web App에서 카메라를 사용할 수 있습니까?
- 13. Private Grails Plugin web-app에서 리소스에 액세스
- 14. ASP .NET Web App에서 열린 인증 인증
- 15. Materializecss의 SideNav가 React Web App에서 작동하지 않습니다.
- 16. Azure Web App에서 추가 포트 열기
- 17. Web App에서 위도/경도를 얻는 방법은 무엇입니까?
- 18. VB Web App에서 텍스트 상자를 반복합니다.
- 19. HTML5 Web App에서 고정 헤더가 깜박임 (Android)
- 20. Web App에서 드라이브의 파일을 자동으로 다운로드 하시겠습니까?
- 21. Azure Web App에서 정책을 다시 작성하십시오.
- 22. React web app에서 모바일 기본 선택 도구를 사용하는 방법?
- 23. C# Web APP에서 현재 Windows 로그인 이름을 얻는 방법?
- 24. Spring3 Web App에서 beanFactory에 액세스하는 더 나은 방법
- 25. Java : 카드 더미를 선언하는 가장 좋은 방법
- 26. Android App에서 Smartwatch 2의 레이아웃 시작
- 27. Java Struts App에서 기본 파일 구조 변경
- 28. PHP에서 후크를 만드는 방법
- 29. 프로세스 후크를 사용하는 방법
- 30. 오이에 후크를 사용하는 방법?