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!" 문자열을 출력합니다.
'Spring' 카테고리의 다른 글
스프링에서 @RequestMapping 어노테이션을 메서드 위에 선언하는 것과 클래스위에 선언하는 것의 차이 (0) | 2023.04.19 |
---|---|
Spring Annotation 13. @Bean (0) | 2023.04.19 |
Spring Annotation 12. @Configuration (0) | 2023.04.19 |
Spring Annotation 11. @Repository (0) | 2023.04.19 |
Spring Annotation 10. @Service (0) | 2023.04.19 |
댓글