ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 05 Spring DI 활용하기(2) - 이론
    Spring/02 Spring DI와 AOP 2023. 6. 28. 22:22
    반응형

    Spring DI 활용하기(2) - 이론

    6) IoCDI

    - 제어의 역전 (IoC) - 제어의 흐름을 전통적인 방식과 다르게 뒤바꾸는 것

    의존성 주입 DI - 사용할 객체를 외부에서 주입받는 것

    >> 전통적인 방식은 호출 방식 사용자가 라이브러리 메서드를 호출

    >> Ioc 방식은 라이브러리에서 호출하여 사용자에게 전달

    >> 의 값을 넣을시 매번 코드를 변경해야됨 , IoC처럼 변경시 변경에 유연함 의존성 주입 DI(수동)

          ※ 의존성 주입 종류 : 수동 , 자동(@Autowired

     

     

     

    6-1) 스프링 애너테이션 - @Autowired

    - 인스턴스 변수(iv), setter, 참조형 매개변수를 가진 생성자, 메서드에 적용

    >> @Value를 생략하면, 주입할게 없다고 오류 발생

    >> 생성자의 @Autowired는 생략 가능

     

     

    AppliationContextTest.java

    >> 기본생성자를 생성하면, 기본생성자의 값을 얻어온다

    >> 따라서 @Autowired를 주입하여 출력할 생성자를 알려줘야 한다

    기본생성자를 사용시, @Autowired생략될 수 없다

     

     

     

    @Autowired

    Spring container에서 타입으로 빈을 검색해서 참조 변수에 자동 주입(DI)

    검색된 빈이 n이면, 그 중에 참조변수와 이름이 일치하는 것을 주입.

     

    주입 대상이 변수일 때, 검색된 빈이 1 아니면 예외 발생

    주입 대상이 배열일 때, 검색된 빈이 n라도 예외 발생X (0개면 예외 발생)

    [참고] @Autowired(required=false)일 때, 주입할 빈을 못 찾아도 예외 발생X (null 출력)

     

     

     

    @Resource

    - Spring container에서 이름으로 빈을 검색해서 참조 변수에 자동 주입(DI)

    일치하는 이름의 빈이 없으면, 예외 발생

     

     

     

    6-2) 스프링 애너테이션 - @Componet

    - <component-scan>@Component가 클래스를 자동 검색해서 빈으로 등록

      @Controller, @Service, @Repository, @ControllerAdvice의 메타 애너테이션 (@Componet 포함)

     

     

    6-3) 스프링 애너테이션 - @Value@PropertySource

     

     

    ApplicationContext.java

     

     

     

    7) 스프링 애너테이션 vs. 표준 애너테이션(JSR-330 자바 제공)

    - javax.inject-1.jar - @Inject, @Named, @Qualifier, @Scope, @Singleton

    - annotations-api.jar - @Resource, @ManagedBean, @PreDestroy, @PostContruct

      ※ External Libraries, tomcat 9.0 library에 위 파일이 정의되어 있다

     

     

     

    8) 빈의 초기화 - <property>setter

    - <property>를 이용한 빈 초기화. setter를 이용

     

     

     

    8-1) <constructor-arg>를 이용한 빈 초기화. 생성자를 이용

     

     

     

    8-2) 빈의 초기화 - <list>, <set>, <map>

     

     

     

    반응형

    'Spring > 02 Spring DI와 AOP' 카테고리의 다른 글

    07 Spring으로 DB다루기 TDD  (0) 2023.07.01
    06 Spring으로 DB연결하기  (0) 2023.06.30
    04 Spring DI 활용하기(1) - 이론  (0) 2023.06.26
    03 Spring DI 활용하기-실습  (0) 2023.06.23
    02 Spring DI 흉내내기(2)  (0) 2023.06.22
Designed by Tistory.