다수의 빈(Bean)객체의존 객체의 대상이 되는 객체를 선택하는 방법에 대해서 학습한다.

  • 다수의 빈(Bean)이라서 모호한 것을 "어떤 것"을 @Autowired 할지를 명확하게 해주는 것을 의미한다.
10-1 의존객체 선택
Exception 상황 이유
동일한 객체가 2개 이상인 경우 스프링 컨테이너는 자동 주입 대상 객체를 판단하지 못해서 Exception을 발생시킨다.
해결방법
- @Qualifier : 우선자 어노테이션
10-2 의존객체 자동 주입 체크
의존객체가 없는 경우 Exception을 발생하지 않게 하는 방법
상황 solution
@Autowired(requried = false)
bean이 등록되어 있지 않아도 Exception을 발생시키지 않는다. 거의 이런 경우는 없을 것이다.
10-3 @Injection
Autowired 속성과 아예 똑같지만 requried를 제공하지 않는다. 왜 Autowired가 많이 쓰이는지 모르겠으나 아무튼 그렇다...

 

'Spring > [인프런] Spring FrameWork' 카테고리의 다른 글

어노테이션을 이용한 스프링 설정 -1  (0) 2021.12.27
생명주기(Life Cycle)  (0) 2021.12.24
의존객체 자동 주입  (0) 2021.12.23
스프링 설정 파일 분리  (0) 2021.12.23
스프링 강의노트  (0) 2021.10.22

의존객체를 자동으로 주입하는 방법에 대해서 학습합니다.

9-1 의존객체 자동 주입이란?
스프링 설정 파일에서 의존 객체를 주입할 때 <constructor-org> 또는 <property> 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의존 대상 객체가 필요한 객체에 주입해 주는 기능이다. 구현 방법은 @Autowired와 @Resource 어노테이션을 이용해서 쉽게 구현할 수 있다.
스프링 컨테이너 방법
@Autowired
@Resource

 

9-2 @Autowired
주입하려는 객체의 타이비 일치하는 객체를 자동으로 주입한다.
@Autowired사용시 주의할 점
생성자에는 Autowired 주는 것은 상관없는데 프로퍼티 또는 메서드에 @Autowired를 줄 때에는 반드시 기본 생성자(디폴트 생성자)를 명시해주고 사용한다. 이유는 간단하다. 다음과 같이 WordDao를 필요로하는 메서드인데 해당 객체가 없으면 의존성 주입이 어렵다. 
9-3 @Resource
주입하려고 하는 객체의 이름이 일치하는 객체를 자동으로 주입한다.
  • @Autowired랑 비슷하다.
  • 생성자에 쓰지 못한다.
  • 프로퍼티, 메서드에 쓸 수있다.
  • 기본생성자 필수이다.

'Spring > [인프런] Spring FrameWork' 카테고리의 다른 글

어노테이션을 이용한 스프링 설정 -1  (0) 2021.12.27
생명주기(Life Cycle)  (0) 2021.12.24
의존객체 선택  (0) 2021.12.24
스프링 설정 파일 분리  (0) 2021.12.23
스프링 강의노트  (0) 2021.10.22

+ Recent posts