스프링 컨테이너는 내부에 존재하는 애플리케이션 빈(Bean)의 생명주기를 관리합니다.
(Bean 생성, 관리, 제거 등의 역할을 담당)
ApplicationContext
를 스프링 컨테이너라고 하고 인터페이스로 구현됨 (다형성 적용)
컨테이너는 개발자가 정의한 Bean을 객체로 만들어 관리하고 개발자가 필요로 할 때 제공
의존성 주입을 통해 애플리케이션의 컴포넌트를 관리
스프링 컨테이너는 Configuration Metadata를 사용
스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록
new AnnotationConfigApplicationContext(구성정보.class)로 스프링에 있는 @Bean의 메서드를 등록
애너테이션 기반 컨테이너 구성
애너테이션 기반의 자바 설정 클래스로 Spring을 만드는 것을 의미
// Spring Container 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(DependencyConfig.class);
XML 기반으로 만드는 ClassPathXmlApplicationContext도 있습니다.
XML 기반 구성 메타데이터의 기본 구조
<?xml version="1.0" encoding="UTF-8"?> <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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <bean id="..." class="..."> <!-- collaborators and configuration for this bean go here --> </bean> <!-- more bean definitions go here --> </beans>
<'beans />에 필요한 값들을 설정
<'bean id=”...”> : 빈 정의를 식별하는데 사용되는 문자열
<'bean class=”...”> : Bean의 유형을 정의하고 클래스 이름을 사용
// Annotation ApplicationContext context = new AnnotationConfigApplicationContext(DependencyConfig.class); // XML ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml");