티스토리 뷰


  • 스프링 Bean Factory 배우기


 BeanFactory beanFacotry = new ClassPathXmlApplicationContext("Bean정의파일.xml");

 // ProductSampleRun 클래스와 같은 T형을 사용한 getBean 메소드

 클래스명 오브젝트명 = beanFactory.getBean(클래스.class);



 WAS -> web.xml -> 서블릿 확인 -> WebApplicationContext가 정의된 Bean.xml 을 확인

 -> Bean.xml 에 정의된 Bean 을 Spring이 읽음






 Listener 설명


- 웹 컨테이너는 웹 애플리케이션이 시작되거나 종료 되는 시점에 특정 클래스의 메소드를 실행할 수 있는 기능을 제공하고 있다. 이 기능을 사용하면 웹 애플리케이션을 실행하는데 필요한 초기화 작업이나 웹 애플리케이션이 종료된 후 사용된 자원을 반환하는 등의 작업을 수행할 수 있다.


- 웹 애플리케이션이 시작되고 종료될 때 특정한 기능을 실행 할 려면 다음과 같이 코드를 작성하면 된다.


1. javax.servlet.ServletContextListener 인터페이스를 구현한 클래스 작성

2. web.xml


ContextLoaderListener( ServletContextListener 를 스프링에서 확장한 클래스 )

  • Creates the Spring Container shared by all Servlets and Filters
  • 웹 어플리케이션의 시작 이벤트나 종료 이벤트를 처리
  • 웹 컨테이너는 ServletContextListener의 특정 메소드를 호출함
  • ServletContextListener 인터페이스의 이벤트 처리 메서드

Q] 어떠한 경우에 사용자가 사용할 수 있나요?


A] 처음 실행 시(WAS 구동 시) 자동으로 실행하고자 하는 Bean이 있을 때!!! Listener를 사용한다.


ServeletContextListener 인터페이스를 상속하여 Override 하는

contextInitialized(), contextDestroyed() 를 구현하면,

WAS가 구동 시, 구동 종료 시에 동작하는 함수를 구현할 수 있습니다!!!!


ContextLoaderListener에 정의 된 contextInitalized()



  1.  ContextLoader 를 호출하여, 초기화작업을 진행한다.
  2.  web.xml 에 "contextClass" 파라미터를 찾는다.
  3.  스프링에서 실제로 '' contextConfigLocation 을 찾는다.
  4.  root-context.xml 에 기술 된 bean 을 참조할 수 있게 된다.



이렇게 Bean 을 등록하면 Application 객체에 등록이 되기 때문에

Web 전역에서 사용할 수 있습니다!!


ViewResolver 와 Component Scan 의 관련된 Bean은 Root 로 올리면 스프링이 인식을 할 수가 없다. 위와 관련된 Bean 은 servlet-context.xml 에 명시 해야 한다.



댓글