JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP 질문&답변DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP기타 TIP
JSP 팁
JSP 팁
JSP 팁 게시판 입니다
spring 빈묶기-2
kaiser
이미지 슬라이더 보기
 

    1. 빈의 일생

    전통적인 자바 애플리케이션에서의 빈의 생명주기는 new 키워드를 통해 인스턴스화 되거나 역직렬화(deserializatino) 되며, 사용할 있는 상태가 된다.

     

     

     

    여기서 잠깐

    직렬화는 객체의 현재 상태(attribute value)를 네트웍상의 다른곳(remote)또는 local의 file등에

    전달/보존하기 위해 byte stream으로 내보내는 작업(상태 copy)을 말합니다.

    예제)

    public class Person implements java.io.Serializable{

        

          public String name = "홍길동";

          public int    age  = "20";

          public static String address = "서울시";

          transient String post ="111";

    }

     

    위의 예제의 Person이라는 class의 인스턴스가 현재의 상태 를 네트웍으로 전송하기 위해 상태값을 직렬화 하면

    이 직렬화된 데이터는 네트웍으로 전송될것이고, 전달받는 상태를 복원하는 작업을 역직렬화
    (deserialized)라고

    합니다. 물론 전달받는 곳에는 Person이라는 class가 존재해야 합니다.

    그래서 역직렬화하는 과정에서 Person인스턴스가 생성되면서 전달받은 데이터로 상태를 복원합니다.

     

    RMI(Remote Method Invocation)기술을 사용할 경우 이 직렬화/역직렬화를 통해 remote간에 객체의

    상태를 전달받습니다.

     

    네트웍 전달뿐 아니라 파일에도 객체의 상태를 저장하기 위해 직렬화와 역직렬화를 사용합니다.

    직렬화는 ObjectOuputStream의 writeObject() 메소드를 사용하며, 역직렬화는 ObjectInputStream의

    readObject()를 사용합니다.

     

    그리고 직렬화 대상 class는 java.io.Serializable interface를 implements해야 합니다.

    Serializable interface내부는 비어져 있습니다.

     

    출처 : http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=1117764219&p=3&s=t

     

     

    Spring 빈의 생성방법을 커스터마이징 있는 기회를 제공하기 때문에 spring 컨테이너에서의 빈의 생명주기를 이해하는 것이 중요하다.

     

    다음 그림은 spring 애플리케이션 컨텍스트 안에서의 빈의 생명주기이다.



     

    빈의 생성

     

    a. 컨테이너는 빈의 정의(빈에 대한 정보를 어딘가에 있겠죠) 알아낸 다음, 빈을 인스턴스화 한다.

    b. 의존성 주입을 이용해 빈의 정의에 지정되어 있는 모든 특성에 값을 채운다.

    c. 빈이 BeanNameAware 인터페이스를 구현한다면, 팩토리는 빈의 ID setBeanName() 전달하여 호출한다.

    d. 빈이 BeanFactoryAware 인터페이스를 구현한다면, 팩토리는 자신의 인스턴스를 setBeanFactory() 전달하여 호출한다.

    e. 빈이 ApplicationContextAware 인터페이스를 구현했다면 setApplicationContext() 메소드가 호출된다.

    f. 빈과 연관되어 있는 하나 이상의 BeanPostProcessor 존재한다면, 각각의 모든 postProcessBeforeInitialization() 메소드가 호출된다.

    g. 빈이 재정되어 있는 init-method 있으면 호출된다.

    h. 마지막으로 빈과 연관되어 있는 하나 이상의 BeanPostProcessor 존재하다면, 모든 postProcessAfterInitialization()메소드가 호출된다.
    i.
    빈은 애플리케이션에 의해 즉시 사용 있는 상태이며, 이상 필요하지 않을때까지 팩토리 안에 남아 있게 된다.

     

    빈의 소멸

     

    a. 빈이 DisposableBean 인터페이스를 구현하고 있다면, destroy() 메소드가 호출된다.

    b. 커스텀 destroy-method 지정되어 있다면 메소드가 호출된다.

2007-01-30 15:01:52
211.189.124.***

서현사랑~ 안녕 안녕 나의 아기별~~

첨부파일 (총 1개)
  1. 21.jpg 49.47 KB (105 다운로드)
0점 (0명)
덧글 0개 | 태그 1개 | 관련글보기
태그입력
쉽표(,)구분으로 한번에 여러 태그를 입력할수 있습니다
spring (18)
이름 비밀번호
JSP 팁
JSP 팁 게시판 입니다
! 번호 제목 글쓴이 일자 조회
114 STS Spring MVC on STS 2.8, 2.9 버전에서 프로젝트 생성시 에러발생 할 경우 1 GoodBug 2012-03-08 8,029
113 dbcp DBCP 사용시 DB정보 암호화 1 GoodBug 2012-02-08 5,539
112 스트럿츠 action alert 메시지 출력 후 페이지 이동 & 뒤로가기 예방 행복한광대 2009-01-14 11,588
111 spring spring 자동묶기 1 kaiser 2007-03-12 11,800
110 spring Spring 빈묶기- 생성자를 통한 의존성 주입 2 1 kaiser 2007-02-21 21,565
109 spring Spring 빈묶기-세터메소드를 통한 의존성 주입 1 kaiser 2007-02-21 11,867
108 spring Spring - xml로 묶기 1 kaiser 2007-02-07 12,345
107 spring Spring 빈묶기-기본묶기 1 kaiser 2007-02-05 8,765
spring spring 빈묶기-2 1 kaiser 2007-01-29 9,628
105 spring Spring 빈묶기-1 1 kaiser 2007-01-29 9,706
104 spring Spring 1차 요약 1 kaiser 2007-01-23 10,768
103 spring spring 시작하기-2 1 1 kaiser 2007-01-22 9,931
102 spring Spring 시작하기-1 4 1 kaiser 2007-01-22 11,637
101 spring Spring 서론 - spring 설치 1 1 kaiser 2007-01-19 13,315
100 clob 사용하기 kaiser 2008-08-21 7,632
99 span 글쓰기 후 사용할 protoload 1 1 고고싱 2008-05-09 7,121
98 log4sql log4sql 1 1 Aki 2008-04-30 8,352
97 숫자 세자리마다 콤마 찍기 1 곱슬대마왕 2008-03-21 8,464
96 iBatis iBatis 에서 SQL 로깅시 이뿌게 보이기 6 1 GoodBug 2007-10-26 22,565
95 log4sql요즘 많이 쓰는것 같던데.... 영이남푠 2008-10-17 8,078
copyright 2005-2018 by Unicorn