- 기본 라이프 사이클
- 생성 -<초기화 ->빈객체 사용 -> 소멸
- @Bean(inintMethod="init",destroyMethod="destroy")
- 빈이 생ㅇ성할시 메서드 선언 소멸시 메서드 선언
- xml 컨테이너
- <bean id ="XX" class="@@@.@@" init=method="시작시처리할메서드" destroy-method="소멸시 처리할메서드">
- 빈의 범위를 설정
- 컨테이너에서 단일 객체만 사용할시 : singleton
- ex ) 해당 bean 객체에 속성겂을 변경했을 때, 다음에 다시 객체를 호출하더라도 변경된 속성값을 가지고 있음
- 컨테이너에서 호출시마다 객체를 생성 : prototype
- 해당 bean객체를 호출 시 마다 새로운 객체가 생성되기에 속성값을 호출된 객체마다 다른 값을 가지고 있다
1
|
bean id="apple01" class="springwebPackage.z02_vo.Apple"
scope="prototype"<--이부분을 선언해줘야 새로운
객체를 계속 만들수있다
p:initCnt="10"/>
| cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<bean class="springwebPackage.a16_lifeCycle.DBConn"
init-method="init" destroy-method="destroy"/>
public class DBConn {
//시작 메서드 정의
public void init(){
System.out.println("연결");
}
//종료 메서드 정의
public void destroy(){
System.out.println("연결해제");
}
}
| cs |
-인터페이스를 통한 생성과 소멸 처리
- InitializeingBean : 빈을 초기화시 처리되는 메서드 선언 포함 interface
- afterPropertiesSet() : 초기화 때, 속성값을 설정하는 내용을 mapping할 메서드 선언
- DisposableBean : 빈을 소멸시 처리되는 메서드 선언 포함 interface
- destroy() : 소멸시 처리할 내용 기술
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class Party implements InitializingBean, DisposableBean{
@Override
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
//객체가 초기에 선언되거나 처리될 내용 기술
System.out.println(" Do you know what time is it? ");
}
@Override
public void destroy() throws Exception {
// TODO Auto-generated method stub
//자원 해제 처리 등 이 객체를 통해서 생성된
메모리를 해제하는것을 주로 함
System.out.println("It must be party time~");
}
public void eat(){
System.out.println("맛있게 먹자");
}
public void shallwedance(){
System.out.println("p a r t y~");
}
}
| cs |
- annotation 활용
- @PostConstruct
- 객체 생성자를 호출한 직후 , 처리할 내용 메서드 선언 앞에 명시
- ex)
- @postconstruct
- public void init(){}
- @PreDestroy
- 객체 소멸 직전, 처리할 내용 메서드 선언 앞에 명시
- ex)
- @predestroy
- public void destroy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class Trip {
//객체 생성자
@PostConstruct
public void readyTrip(){
System.out.println("어디로 갈까 ? ");
}
@PreDestroy
public void afterTrip(){
System.out.println("집으로 끝");
}
}
xml 단에서 <context:annotation-config/>
선언 필요
| cs |
댓글 없음:
댓글 쓰기