본문 바로가기

IT TIPS/Spring

[Spring] bean 엘리먼트 속성 4가지 알아보기

XML 설정 파일에서 <bean> 엘리먼트의 대표적인 속성 4가지를 알아보자!


1. init-method


스프링 컨테이너는 설정 파일에 등록된 클래스를 객체 생성할 때 디폴트 생성자를 호출한다


객체 생성 후, 멤버변수 초기화 작업이 필요할 때 init-method를 사용한다


<bean id="test" class="TestClass" init-method="initMethod" />


2. destroy-method


init-method와 마찬가지로 스프링 컨테이너가 객체를 제거하기 직전에 호출되는 메소드이다


<bean id="test" class="TestClass" destroy-method="destroyMethod" />


3. lazy-init


컨테이너가 구동될 때 설정 파일에 등록된 <bean>들은 생성하는 즉시 로딩(pre-loading) 방식으로 동작한다


그런데 자주 사용 되지 않는 <bean>은 메모리 낭비가 될 수 있다


이 때, 컨테이너 구동 시점이 아닌 <bean>이 사용되는 시점에 객체를 생성하도록 할 때 사용된다


<bean id="test" class="TestClass" lazy-init="true" />


4. scope


하나만 생성 되어야만 혹은 생성 돼도 문제없는 객체들이 있다


이 때, 싱글턴 패턴(singleton pattern) 사용하는데 scope속성을 이용하여 적용할 수 있다


<bean id="test" class="TestClass" scope="singleton" />


반대로 스프링 컨테이너로부터 필요한 객체를 요청할 때마다 새로운 객체를 생성할 때는 prototype을 사용한다


<bean id="test" class="TestClass" scope="prototype" />