본문으로 바로가기

빈 xml 객체 생성 정리

category Javajava 4년 전

Spring Bean 객체 생성

 : Spring에서는 사용할 Bean의 객체를 bean configuration file에 정의하고

   필요할 때 객체를 가져와 사용하는 방법을 이용합니다.

 : bean 태그는 사용할 Bean을 정의하는 태그입니다.

 

Bean 태그의 기본 속성

태그 이름 설명
class 객체를 생성하기 위해 사용할 클래스를 지정합니다.
id Bean 객체를 가져오기 위해 사용하는 이름을 지정합니다.
lazy-init 싱글톤인 경우 xml을 로딩할 때 객체 생성 여부를 설정합니다.
scope 객체 범위를 설정합니다.
Singleton : 객체를 하나만 생성해서 사용한다.
Prototype : 객체를 가져올 때마다 객체를 사용한다.

 

 

생성된 객체의 주소값 중 IoC 컨테이너가 가지고 있는 주소값을 받으려면 id라는 속성이 필요합니다.

자동주입이라는 개념을 이용하면 id속성 없이도 객체 주소값을 받아올 수 있습니다.

 

lazy-init과 scope를 생략하면 객체는 딱 하나의 객체가 만들어지기 때문에

getBean을 할 때마다 계속 같은 주소값을 반환합니다.

 

lazy-init을 설정 안하면 False가 설정되기 때문에 xml을 로딩할 때 객체가 생성됩니다.

 

lazy-init을 True로 설정해주면 xml을 로딩할 때 객체가 만들어지는게 아니라

getBean 메서드로 호출할 때 객체가 만들어 집니다.

하지만 scope가 singleton이기 때문에 처음 getBean을 할 때 객체가 만들어지고

그 다음부터 getBean을 하면 계속 같은 주소값을 반환합니다.

 

Scope에 prototype을 설정해주면 singleton이 아니게 됩니다.

그래서 xml을 로딩할 때 자동으로 객체를 생성하지 않습니다. (lazy-init을 설정하지 않아도 됩니다.)

getBean 메서드로 호출할 때 마다 자동으로 객체가 계속 생성됩니다.

반응형

Javajava카테고리의 다른글

IoC 컨테이너  (0) 2020.10.26
AOP (Aspect Oriented Programming)  (0) 2020.10.26
스프링(Spring)의 특징과 의존성 주입(DI)  (0) 2020.10.20
EL문, JSTL  (0) 2020.10.20
Model2 (MVC2)  (0) 2020.09.23