본문으로 바로가기

빈 xml 객체 생성 정리

category Java/java 2020. 10. 21. 16:19

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 메서드로 호출할 때 마다 자동으로 객체가 계속 생성됩니다.

반응형

'Java > java' 카테고리의 다른 글

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