250x250
Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

개린이 개발노트

@Resource 와 @Autowired 본문

스프링Spring

@Resource 와 @Autowired

개린이9999 2024. 1. 12. 10:50
728x90

@Resource@Autowired는 모두 Spring Framework에서 의존성 주입을 수행하는데 사용되는 어노테이션입니다. 그러나 이 두 어노테이션 간에는 몇 가지 차이가 있습니다.

 

  1. 사용 목적:
    • @Resource: 주로 자바 EE (Enterprise Edition) 환경에서 사용되며, 기본적으로 이름을 기반으로 의존성을 주입합니다. 이름 기반으로 주입되는 자원의 경우 name 속성을 사용하여 지정할 수 있습니다.
    • @Autowired: Spring Framework에서 주로 사용되며, 주입할 빈을 타입을 기반으로 찾아서 의존성을 주입합니다.
  2. 주입 방식:
    • @Resource: 이름(빈의 id나 이름)을 기반으로 주입합니다. 예를 들어 @Resource(name = "userService")와 같이 사용할 수 있습니다.
    • @Autowired: 주입할 빈의 타입을 기반으로 주입합니다. 타입에 해당하는 빈이 여러 개인 경우, 그 중에서 한 가지를 선택하여 주입하도록 동작합니다.
  3. 속성 유무:
    • @Resource: name 속성 외에도 type과 shareable 등의 속성을 사용할 수 있습니다. 하지만 name 속성은 주로 사용되며, 타입에 해당하는 빈이 없으면 이름을 기반으로 검색합니다.
    • @Autowired: 주로 타입을 기반으로 주입하므로 별다른 속성이 필요하지 않습니다. 필요에 따라 required 속성을 사용하여 주입할 빈이 없는 경우 예외를 발생시킬지 여부를 결정할 수 있습니다.
  4. 예시 코드:
    • @Resource의 예시:
@Resource(name = "userService")
private UserService userService;

@Autowired의 예시:

@Autowired
private UserService userService;

 

둘 다 Spring에서 의존성 주입을 위해 사용되며, 주로 @Autowired가 더 간편하게 사용되고 흔하게 쓰입니다. 그러나 @Resource는 자바 EE 환경에서도 사용 가능하며, 특정 상황에서 이름을 기반으로 주입하는 것이 유용할 수 있습니다.

728x90

'스프링Spring' 카테고리의 다른 글

@RequestParam, 쿼리스트링  (0) 2024.01.12
@RequestBody , @ResponseBody/@RestController  (1) 2024.01.11
HikariCP에 대해 알아보기  (0) 2023.09.04
Model,ModelAndView  (0) 2023.08.29
Spring MVC 구조 및 처리 순서  (0) 2023.07.07