ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [스프링] ApplicationContext
    IT 발자취.../스프링 2018. 12. 12. 20:08

    스프링에서 ApplicationContext 인터페이스는 BeanFactory를 상속한다.
    ApplicationContext는 DI 서비스뿐 아니라 트랙잰션과 AOP 서비스,
    국제화를 위한 메시지 소스(i18n), 애플리케이션 이벤트 처리 등
    다른 서비스도 함께 제공한다.

    스프링 기반의 애플리케이션을 개발 할 때는 
    ApplicationContext 인터페이스를 통해 스프링과 연동하는 방식을 권장합니다.
    스프링은 직접 작성한 코드를 통해
    ApplicationContext를 부트스트랩할 수 있게 지원하고
    (ApplicationContext를 직접 인스턴스화하고 적절한 설정을 로드)
    웹 컨테이너 환경에서는 ContextLoaderListener를 통한 부트스트랩도 지원한다.

    ApplicationContext의 설정
    (XML 및 자바 애노테이션 설정)

    XML설정

    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c" xmlns:util="http://www.springframework.org/schema/util"

    context: context 네임스페이스는 스프링의 ApplicationContext를 설정하는 지원 기능을 제공한다.
    p : p네임스페이스는 세터 주입을 쉽게 할 수 있는 DI 설정을 제공한다.
    c : 스프링 3.1에서 새로 추가된  c 네임스페이스는 생성자 주입을 좀 더 간편하게 할 수 있는 DI 설정을 제공한다.
    util : util 네임스페이스는 DI 설정에 유용한 유팅리티를 제공한다.

    #애너테이션 지원 기능을 애플리케이션에서 사용하려면

    <context:component-scan base-package="com.gintire"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan>

    <context:annotation-cong> 태그는 스프링이 코드 기반에서 의존성 요구 조건을 스캔하게끔 하고, 
    <context:component-scan> 태그는 스프링이 코드에서 지정된 패키지(및 하위 패키지) 아래에 있는 주입 가능한 빈을 모두 스캔하게끔 한다. 
    앞의 태그는 스프링이 지정된 패키지를 스캔하게 하지만 표현식에서 지정한 타입(클래스 또는 인터페이스)으로 대입할 수  있는 클래스는 제외시키게 했다. exclude 필터 외에 include 필터도 포함 시킬 수 있다. 타입으로는 annotation, regex, assignable, AspectJ, custom(org.springframework.type.filter.TypeFilter를 구현하는 커스텀 플티 클래스)을 필터 조건으로 지정할 수 있다.
    expression의 형식은 지정한 type에 따라 다르다.


    댓글

Designed by Gintire