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 |