List

수요일, 12월 02, 2015

빈 라이프 사이클


  • 기본 라이프 사이클
    • 생성 -<초기화 ->빈객체 사용 -&gt; 소멸
      • @Bean(inintMethod="init",destroyMethod="destroy")
        • 빈이 생ㅇ성할시 메서드 선언 소멸시 메서드 선언

  • xml 컨테이너 
    • &lt;bean id ="XX" class="@@@.@@" init=method="시작시처리할메서드" destroy-method="소멸시 처리할메서드"&gt;
  • 빈의 범위를 설정
    • 컨테이너에서 단일 객체만 사용할시 : singleton
      • ex ) 해당 bean 객체에 속성겂을 변경했을 때, 다음에 다시 객체를 호출하더라도 변경된 속성값을 가지고 있음
    • 컨테이너에서 호출시마다 객체를 생성 : prototype
      • 해당 bean객체를 호출 시 마다 새로운 객체가 생성되기에 속성값을 호출된 객체마다 다른 값을 가지고 있다
1
bean id="apple01" class="springwebPackage.z02_vo.Apple"
 scope="prototype"<--이부분을 선언해줘야 새로운
객체를 계속 만들수있다
   p:initCnt="10"/&gt;
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 &lt;bean class="springwebPackage.a16_lifeCycle.DBConn" 
init-method="init" destroy-method="destroy"/&gt;
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 단에서 &lt;context:annotation-config/&gt;
선언 필요
cs








댓글 없음:

댓글 쓰기