Spring 입문 부터 입 토 까지 - Bean 의 역할 영역

Bean 의 역할 영역
Bean 의 역할 영역
  • Singleton
  • Prototype
  • Request
  • Session
  • Global Session

  • 관련 글
    홈 페이지 에 따라 spring - 빠 른 입문 안내
    홈 페이지 에 따라 Spring - RESTful 웹 서비스 구축
    Spring 입문 부터 입 토 까지 - 개술 및 IOC 이론 적 추론
    Spring 입문 부터 입 토 까지 - 빠 른 시작 Spring
    Spring 입문 부터 입 토 까지 - 주입 의존 (DI)
    Spring 입문 부터 입 토 까지 - Bean 의 역할 영역
    Spring 입문 부터 입 토 까지 - 자동 조립
    Spring 입문 부터 입 토 까지 - 주 해 를 사용 합 니 다.
    Spring 입문 부터 입 토 까지 - AOP 는 이렇게 간단 합 니 다.
    Spring 입문 부터 입 토 까지 - 대리 모드
    Bean 의 역할 영역
    Spring 에 서 는 응용 프로그램 을 구성 하 는 주체 와 Spring IoC 용기 가 관리 하 는 대상 을 bean 이 라 고 부른다.쉽게 말 하면 bean 은 IoC 용기 에서 초기 화, 조립 및 관리 대상 이다.
    유별
    설명 하 다.
    singleton (단일 모드)
    Spring Ioc 용기 에 Bean 인 스 턴 스 만 존재 합 니 다. Bean 은 하나의 예 로 존재 합 니 다. 기본 값 입 니 다.
    prototype (원형 모드)
    용기 에서 Bean 을 호출 할 때마다 getBean () 을 호출 할 때마다 new. XxBean () 을 실행 하 는 것 과 같 습 니 다.
    요청 (HTTP 요청)
    HTTP 요청 이 있 을 때마다 새 Bean 을 만 듭 니 다. 이 역할 영역 은 웹 응용 프로그램 Context 환경 에 만 적 용 됩 니 다.
    세 션 (세 션)
    같은 HTTP 세 션 은 하나의 빈 을 공유 하고 세 션 마다 다른 빈 을 사용 하 며 웹 애플 리 케 이 션 Context 환경 에 만 적 용 됩 니 다.
    globalSession (전역 세 션)
    일반적으로 Portlet 응용 환경 에 사용 되 며, 이 역할 영역 은 웹 응용 프로그램 Context 환경 에 만 적 용 됩 니 다.
    몇 가지 역할 영역 에서 request, session 역할 영역 은 웹 기반 응용 프로그램 에서 만 사용 합 니 다 (어떤 웹 응용 프레임 워 크 를 사용 하 는 지 신경 쓰 지 마 십시오). 웹 기반 Spring Application Context 환경 에서 만 사용 할 수 있 습 니 다.
    Singleton
    하나의 bean 의 역할 영역 이 Singleton 이면 Spring IoC 용기 에 공 유 된 bean 인 스 턴 스 만 존재 하고 bean 에 대한 모든 요청 은 id 가 이 bean 정의 와 일치 하면 bean 의 같은 인 스 턴 스 만 되 돌려 줍 니 다.싱글 톤 은 하나의 예 형식 입 니 다. 용 기 를 만 들 때 동시에 bean 의 대상 을 자동 으로 만 듭 니 다. 사용 하 든 안 하 든 그 는 존재 합 니 다. 매번 가 져 오 는 대상 은 같은 대상 입 니 다.싱글 톤 역할 영역 은 Spring 의 결 성 역할 영역 입 니 다.XML 에서 bean 을 singleton 으로 정의 하려 면 이렇게 설정 할 수 있 습 니 다.
     
    

    테스트:
     @Test
     public void test03(){
         ApplicationContext context = newClassPathXmlApplicationContext("applicationContext.xml");
         User user = (User) context.getBean("user");
         User user2 = (User) context.getBean("user");
         System.out.println(user==user2);
     }
    

    Prototype
    하나의 bean 의 역할 영역 이 Prototype 이면 하나의 bean 정의 가 여러 개체 의 인 스 턴 스 를 나타 낸다.Prototype 역할 필드 의 bean 은 이 bean 에 대한 요청 (다른 bean 에 주입 하거나 프로그램 으로 용기 의 getBean () 방법 을 호출 할 때마다 새로운 bean 인 스 턴 스 를 만 듭 니 다.Prototype 은 원형 형식 입 니 다. 용 기 를 만 들 때 예화 되 지 않 고 bean 을 가 져 올 때 만 대상 을 만 듭 니 다. 그리고 우리 가 가 져 올 때마다 대상 은 같은 대상 이 아 닙 니 다.경험 에 따 르 면 상태 가 있 는 bean 은 prototype 역할 영역 을 사용 해 야 하고, 상태 가 없 는 bean 은 singleton 역할 영역 을 사용 해 야 합 니 다.XML 에서 bean 을 prototype 으로 정의 합 니 다. 이렇게 설정 할 수 있 습 니 다.
       
        
     
    

    Request
    bean 의 역할 영역 이 Request 일 때 HTTP 요청 에서 bean 정의 가 인 스 턴 스 에 대응 하 는 것 을 표시 합 니 다.즉, 모든 HTTP 요청 은 각각의 bean 인 스 턴 스 를 가지 고 있 으 며, 하나의 bean 정의 에 따라 만들어 집 니 다.이 역할 영역 은 웹 기반 Spring Application Context 상황 에서 만 유효 합 니 다.다음 bean 정 의 를 고려 합 니 다:
     
    

    매번 HTTP 요청 에 대해 Spring 용 기 는 loginAction bean 의 정의 에 따라 새로운 LoginAction bean 인 스 턴 스 를 만 듭 니 다. 또한 이 loginAction bean 인 스 턴 스 는 현재 HTTP request 에서 만 유효 하기 때문에 필요 에 따라 만 든 인 스 턴 스 의 내부 상 태 를 안심 하고 변경 할 수 있 습 니 다. 다른 요청 에 서 는 loginAction bean 정의 에 따라 만 든 인 스 턴 스 입 니 다.특정한 요청 의 상태 변 화 를 보지 못 할 것 이다.처리 요청 이 끝나 면 request 역할 필드 의 bean 인 스 턴 스 가 삭 제 됩 니 다.
    Session
    bean 의 역할 영역 이 Session 일 때 HTTP Session 에서 하나의 bean 정의 가 인 스 턴 스 에 대응 하 는 것 을 표시 합 니 다.이 역할 영역 은 웹 기반 Spring Application Context 상황 에서 만 유효 합 니 다.다음 bean 정 의 를 고려 합 니 다:
     
    

    어떤 HTTP 세 션 에 대해 Spring 용 기 는 userPreferences bean 정의 에 따라 새로운 userPreferences bean 인 스 턴 스 를 만 들 고 이 userPreferences bean 은 현재 HTTP 세 션 에서 만 유효 합 니 다.request 역할 영역 과 마찬가지 로 생 성 된 인 스 턴 스 의 내부 상 태 를 안심 하고 변경 할 수 있 으 며, 다른 HTTP 세 션 에 서 는 userPreferences 에 따라 생 성 된 인 스 턴 스 는 특정한 HTTP 세 션 의 상태 변 화 를 볼 수 없습니다.HTTP Session 이 최종 적 으로 폐 기 될 때 이 HTTP Session 역할 영역 에 있 는 bean 도 폐 기 됩 니 다.
    Global Session
    하나의 bean 의 역할 영역 이 Global Session 이면 전체 HTTP Session 에서 하나의 bean 정의 가 인 스 턴 스 에 대응 하 는 것 을 나타 낸다.전형 적 인 상황 에서 portlet context 를 사용 할 때 만 유효 합 니 다.이 역할 영역 은 웹 기반 Spring Application Context 상황 에서 만 유효 합 니 다.다음 bean 정 의 를 고려 합 니 다:
    
    

    global session 역할 영역 은 표준 HTTP Session 역할 영역 과 유사 하지만 portlet 기반 웹 응용 에서 만 의미 가 있 습 니 다.Portlet 규범 은 전역 Session 의 개념 을 정 의 했 고 모든 portlet 웹 응용 을 구성 하 는 다양한 portlet 에 의 해 공유 되 었 다.global session 역할 영역 에서 정 의 된 bean 은 전역 portlet Session 의 수명 주기 범위 에 한정 되 어 있 습 니 다.

    좋은 웹페이지 즐겨찾기