리셋 되지 말자

스프링을 통한 의존선 주입 - @Resource를 통한 속성 주입 본문

Java(폐지)/spring 책

스프링을 통한 의존선 주입 - @Resource를 통한 속성 주입

kyeongjun-dev 2020. 8. 12. 14:53

의사 코드

운전자가 종합 쇼핑몰에서 자동차 구매를 요청한다.
종합 쇼핑몰은 자동차를 생산한다.
종합 쇼핑몰은 타이어를 생산한다.
종합 쇼핑몰은 자동차에 타이어를 장착한다.
종합 쇼핑몰은 운전자에게 자동차를 전달한다.

소스 코드 (Car.java의 @Autowired가 @Resource로 변경됨)

  • Car.java
package expert005;

import javax.annotation.Resource;

public class Car {
    @Resource
    Tire tire;

    public String getTireBrand() {
        return "장착된 타이어: " + tire.getBrand();
    }
}

@Autowired vs @Resource

@Autowired는 Spring의 어노테이션이고, @Resource는 자바 표준 어노테이션이다.
스프링 프레임워크를 사용하지 않으면 @Autowired는 사용할 수 없고 오직 @Resource만을 사용해야 한다.

@Autowired는 type과 id 중 우선순위가 type이 높고
@Resource는 id의 우선순위가 더 높다.(id로 매칭할 빈을 찾지 못하면 type으로 매칭할 빈을 찾게 된다.)

@Autowired와 @Qualifer 조합해서 사용하기, @Resource에서 id가 필드 이름과 다른 빈을 이용해 속성 주입하기 등등 고급 내용은 http://blog.outsider.ne.kr/729 참고

Comments