본문 바로가기

WEB의 속삭임/Server단의 외침

[JAVA][Spring]Factory

* Spring은 객체를 bean으로 생성하여 관리 한다. 그래서 컨테이너가 필요한데 그래서 팩토리를 두고 있다.


BeanFactory : 빈객체를 관리하고, 각빈 객체간의 의존관계를 설정



구현체 : XmlBeanFactory : 외부 자원으로 부터 설정 정보를 읽어와 빈 객체를 생성한다.


ApplicationContext : 빈객체 라이프사이클, 파일과 같은 자원 처리 추상화, 메시지 지원 및 국제화지원, 이벤트 지원, xml스키마 확장을 통한 편리한 설정.



구현체 : ClassPathXmlApplicationContext : 클래스패스에 위치한 xml 파일로부터 설정 정보를 로딩한다.

            FileSystemXmlApplicationContext : 파일 시스템에 위치한 xml 파일로부터 설정 정보를 로딩한다.


WebApplicationContext : 웹을 위한 것이며, 하나의 ServletContext마나 한개 이상을 가질수 있다.

                                         web.xml를 통해 생성하여 사용하게 된다.


구현체 : XmlWebApplicationContext : 웹 어플리케이션에 위치한 xml 파일로 부터 설정 정보를 로딩한다.


* web.xml 설정

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>WEB-INF/applitionContext,xml</param-value>

</context-param>


<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

...


* 생성된 XmlWebApplicationContext 객체는 WebApplicationContextUtils클래스를 이용하여 구할수 있다.

WebApplicationContext context =                                     WebApplicationContextUtils.getWebApplicationContext(getServletContext());

WriteArticleService writeArticleService = (WriteArticleService)context.getBean("write");