Web Programming/Spring

<bean> 엘리먼트 속성

myHyem 2019. 7. 6. 19:00
  • init-method

스프링 컨테이너는 등록되어 있는 bean 의 객체를 생성할 때 디폴트 생성자를 호출한다. 

따라서 객체를 생성한 후에 멤버변수 초기화 작업이 필요하다면 사용하는 속성이다.

1
<bean id="contentsId" class="url.contentsClass" init-method="initMethod"></bean>
 

*id : bean 객체를 구분하는 식별자이다. java 파일에서 id 값을 통해 해당 객체를 요청한다.

*class : 해당 class의 경로를 나타내는 요소이며 id 속성과 다르게 필수요소이다.

 

이처럼 <bean> 을 등록 할 때, init-method 를 지정해두면,

객체의 생성을 위해 해당 class 로 이동하고 "initMethod" 를 찾아서 초기화를 진행하게 된다.

 

  • destroy-method

스프링 컨테이너가 객체를 삭제하기 직전에 호출될 메소드를 지정하는 속성이다.

1
<bean id="contentsId" class="url.contentsClass" destroy-method="destroyMethod"></bean>
 

위와 같이 사용되며, 객체가 삭제되기 직전에 "destroyMethod" 를 찾아 실행하게 된다.

 

  • lazy-init

applicationContext 를 이용하여 컨테이너를 구동하면 컨테이너 구동시점에 bean 에 등록된 객체가 생성된다.

그런데 어떤 bean 은 필요에 의해서 요청에 의해서만 생성되어야 하는 경우에 사용하는 속성이다.

1
<bean id="contentsId" class="url.contentsClass" lazy-init="true"></bean>
 

 

  • scope

객체를 단 한번만 생성할지, 요청이 올때마다 생성할지를 선택 할 수 있는 속성이다.

1
2
<bean id="contentsId" class="url.contentsClass" scope="singleton"></bean>
<bean id="contentsId" class="url.contentsClass" scope="prototype"></bean>
 

1번의 경우는 요청이 많아도 한번의 객체만을 생성하여 메모리의 효율성을 증진시킨다

(singleton 은 생략가능하다)

2번의 경우는 요청이 들어올 때마다 새로운 객체를 생성한다.

'Web Programming > Spring' 카테고리의 다른 글

Model 1 , Model 2, MVC  (0) 2019.11.27
의존성 관리  (0) 2019.07.06
Spring 프레임워크 기본구조  (0) 2019.06.22