2020. 8. 16. 18:35ㆍJava/Spring
Spring 에서는 사용할 Bean 객체를 bean configuration file(beans.xml)에 정의를 하고 필요할 때 객체를 가져와 사용하는 방법을 이용한다.
1. beans.xml에 정의 된 bean 태그의 속성
- class : 객체를 생성하기 위해 사용할 클래스를 지정한다.
- id : Bean 객체를 가져오기 위해 사용하는 이름을 지정한다.
- lazy-init : 싱글톤인 경우 xml을 로딩할 때 객체 생성 여부를 설정한다.
true : xml 로딩 시 객체를 생성하지 않고 객체를 가져올 때 생성한다.
-scope : 객체의 범위를 설정한다.
- singleton : 객체를 하나만 생성해서 사용한다.
- prototype : 객체를 가져올 때 마다 객체를 생성한다.
2. bean 객체의 생명주기
- 생성
- scope: Singleton인 경우 xml 파일을 로딩 할 때 객체가 생성된다.
- scope: Singleton이고 lazy-init 속성이 true일 경우 getBean 메서드를 사용할 때 객체가 생성된다.
- scope: prototype 일 경우 getBean 메서드를 사용할 때 객체가 생된다.
- 소멸
- loC 컨테이너가 종료 때 객체가 소멸된다.
- 객체 생성 및 종료시 특정 메서드 호출
- 객체가 생성되면 가장 먼저 생성자가 호출된다.
<bean> 내부에 정의
- init-method : 생성자 호출 이후 자동으로 호출된다.
- destroy-method : 객체가 소멸될 때 자동으로 호출된다.
<bean id="test2" class='kr.co.softcampus.beans.TestBean' lazy-init="true" init-method="test1"/>
TestBean에서 생성자 호출 후 test1 메소드를 호출한다.
<beans> 내부에 정의
- default-init-method : init-method를 설정하지 않은 경우 자동으로 호출된다.
- default-destroy-method : destroy-method를 설정하지 않은 경우 자동으로 호출된다.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
default-init-method ="test1"
>
bean 태그 내에 init-method 없을 경우 test1 메소드를 호출한다.
'Java > Spring' 카테고리의 다른 글
Spring - 빈 객체 값 주입 (Setter 메소드) (0) | 2020.08.17 |
---|---|
Spring - 빈 객체 값 주입(생성자) (0) | 2020.08.17 |
Spring - BeanPostProcessor (0) | 2020.08.16 |
Spring - IoC 컨테이너로 빈 관리하기 (0) | 2020.08.15 |
Spring - 개발환경 세팅(Maven Project) (0) | 2020.08.13 |