카테고리 없음

스프링 컨테이너 2-3 Spring IoC 컨테이너

tviewone 2022. 10. 24. 21:18

2-3스프링 컨테이너  ( Spring IoC 컨테이너 )

 

Bean Factory

컨테이너에서 관리할 객체들을 위한 별도의 bean 설정 파일(XML)을 이용함.

dependency lookup

Spring은 설정 파일 저장소로부터 Bean 이름으로 찾아서 사용할 수 있도록 함.

 getBean 메서드 사용하여 사용할 Bean 찾음

 

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans 

           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

           <bean id="samsung" class="com.multicampus.biz.ioc.SamsungTV" />

           <bean id="lg" class="com.multicampus.biz.ioc.LgTV" />  

 

</beans>

           BeanFactory factory = new XmlBeanFactory(

                     new ClassPathResource("applicationContext.xml"));

           TV tv = (TV)factory.getBean("samsung");

Spring Framework Container Bean으로 구성

Bean

컨테이너에 의해 인스턴스화되며, 다른 Bean들과의 관계가 관리된다.

Spring Container

Spring 프레임워크에서 컨테이너 기능을 제공해주는 클래스

흔히 컨테이너 객체라고 부름

Spring 프레임워크의 초기화 역할을 담당함.

 

 

Spring Container의 종류

 

BeanFactory

- Bean의 생성과 소멸 담당

- Bean 생성 시 필요한 속성 설정

- Bean  Life Cycle 에 관련된 메소드 호출

- 동작 방식 : lazy-loading

- 구현 클래스 : XmlBeanFactory

 

ApplicationContext

- BeanFactory 의 모든 기능 제공

- ResourceBundle 파일을 이용한 국제화(I18N) 지원

- 다양한 Resource 로딩 방법 제공

- 이벤트 핸들링 제공

- 동작 방식 : pre-loading

- 구현 클래스 :

XmlWebApplicationContext,

FileSystemXmlApplicationContext,

ClassPathXmlApplicationContext

 

 

Application Context 구현 클래스

XmlWebApplicationContext

Spring MVC에서 내부적으로 사용

FileSystemXmlApplicationContext

파일 시스템에 위치한 XML 설정 파일을 로딩하여 구동됨

ClassPathXmlApplicationContext

클래스 패스에 위치한 XML 설정 파일을 로딩하여 구동됨

 

초기화 방법

ApplicationContext   factory =

                     new ClassPathXmlApplicationContext(

                                "applicationContext.xml");