본문 바로가기
Spring

Spring Annotation 14. @Resource

by Status Code 2023. 4. 20.

Spring Framework에서 @Resource 어노테이션은 의존성 주입(Dependency Injection)을 위해 사용됩니다. 이 어노테이션은 JDK 1.6 이상에서 지원되며, 자바 표준 어노테이션(JSR-250)입니다.

@Resource 어노테이션은 다음과 같이 사용됩니다.

 

@Resource(name="beanName")
private MyBean myBean;

 

 

 

위의 코드에서 name 속성은 빈 이름(bean name)을 지정합니다. @Resource 어노테이션은 스프링에서 빈(bean)을 찾아서 주입합니다.

@Resource 어노테이션은 @Autowired 어노테이션과 유사합니다. 하지만 @Autowired 어노테이션은 스프링 전용 어노테이션이고, @Resource 어노테이션은 자바 표준 어노테이션입니다.

또한 @Resource 어노테이션은 @Qualifier 어노테이션과 함께 사용할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

@Resource(name="myBean")
@Qualifier("myQualifier")
private MyBean myBean;

 

 

 

위의 코드에서 @Qualifier 어노테이션은 빈의 한정자(qualifier)를 지정합니다. 빈의 한정자는 같은 타입의 빈이 여러 개일 때, 어떤 빈을 주입해야 하는지 결정하는 역할을 합니다.

아래는 @Resource 어노테이션을 사용한 예제 코드입니다.

public interface MessageService {
    String getMessage();
}

public class MessageServiceImpl implements MessageService {
    public String getMessage() {
        return "Hello, World!";
    }
}

@Component
public class MyBean {
    @Resource(name="messageServiceImpl")
    private MessageService messageService;

    public void doSomething() {
        System.out.println(messageService.getMessage());
    }
}

 

 

 

위의 코드에서 @Component 어노테이션이 붙은 MyBean 클래스에서 @Resource 어노테이션을 사용해 MessageService 인터페이스를 구현한 MessageServiceImpl 빈을 주입합니다. MyBean 클래스의 doSomething() 메서드에서는 MessageService 인터페이스의 getMessage() 메서드를 호출하여 "Hello, World!" 문자열을 출력합니다.

댓글