ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java Spring] Application context
    알아두면 좋은것 2018. 12. 5. 13:38

    IoC (Inversion of Control)

    - 제어의 반전


    Spring 컨테이너의 IoC


    DL (Dependency Lookup)  - 의존성 검색

    - 저장소에 저장된 Bean 에 접근하기 위해 개발자들이 컨테이너에서 제공하는 API 를 이용하여 사용하고자 하는 Bean 을 Lookup 하는 것


    DI(Dependency Injection) - 의존성 주입

    - 각 계층 사이, 각 클래스 사이에 필요한 의존 관계를 컨테이너가 자동으로 연결해주는 것

    - 각 클래스 사이의 의존 관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것

    - @Autowired 라는 어노테이션을 통해 주입할 수 있다.


    Application context

    - Object 생성을 책임지는 DAOFactory 에 대응하는 것이 Application context 임.

    Spring 에서 Application context 를 IoC 컨테이너, 빈 팩토리라고 한다.

    - DAOFactory 클래스와는 달리 직접 Object 를 생성하고 그 관계를 맺어주는 코드는 없음.

    생성 정보와 연관관계 정보를 별도의 설정 정보를 통해 얻음


    Application context 이 Bean 을 가져오는 방식

     1. @Configure 붙은 DaoFactory 클래스를 설정 정보로 등록한 후,

         @Bean 붙은 메소드의 이름을 가져와 Bean 목록을 만든다.

    2. 클라이언트가 ApplicationContenxt getBean 메소드를 호출하면

        Bean 목록에서 요청한 이름이 있는지 찾는다.

    3. 요청한 이름이 존재한다면 객체가 없는 경우 생성시킨 후, 클라이언트에게 리턴. 있는 경우 그 객체를 리턴함.


    @Configure 이 없는 일반적인 DaoFactory 같은 오브젝트 팩토리를 직접 사용했을 때에 비해

    Application context 를 사용했을 때 장점

    1. 클라이언트는 구체적인 팩토리 클래스를 알 필요가 없다.

    -어플리케이션이 확장되면 DaoFactory같은 오브젝트 팩토리가 계속 추가되는데,

    필요한 오브젝트를 가지고 오기 위해 어떤 팩토리를 이용해서 가져와야 하는지 알아야한다.

    하지만 Application context 를 사용하면 Application context만 알고 있으면 된다.

    2. Application context는 오브젝트 생성, 다른 오브젝트와의 관계 설정 만이 전부가 아님.

    3. Application context는 Bean 을 검색하는 다양한 방법을 제공함 (Bean 이름, 타입, 어노테이션 등)



    '알아두면 좋은것' 카테고리의 다른 글

    [Java Spring] Configuration  (0) 2018.12.05
    [Java Spring] Spring Singleton  (0) 2018.12.05
    Singleton Pattern 싱글턴 패턴  (0) 2018.12.05
    [Java Spring] Spring Bean  (0) 2018.12.05
    객체 지향 5대 원칙 : SOLID 원칙  (0) 2018.12.05

    댓글