인프런 커뮤니티 질문&답변

박용훈님의 프로필 이미지

작성한 질문수

스프링 프레임워크 핵심 기술

IoC 컨테이너 3부: @Autowire

@Autowired Target 질문

해결된 질문

작성

·

238

0

@Autowired의 타겟에 ElementType.ANNOTATION_TYPE은 언제 사용하는 건가요? 

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})

@Autowire를 학습하고 있는 와중에 궁금한게 생겼습니다. 

Constructor, metod, field는 어떻게 사용하는지 알겠는데...

parameter이랑 annotation은 사용한적이 없기 때문에 이걸 어떻게 사용하는지 의문이 드네요.ㅜㅜ;;; 파라미터야 대충

@Override

public String print(@Autowired PetType petType, Locale locale) {

return petType.getName();

}

이렇게 하면 될것 같은데, 어노테이션은 어떻게 사용을 해야할지.. 감이 잡히지 않네요. 인터넷에 찾아보니까 어노테이션에 추가하는 거라고는 하는데, 커스텀 어노테이션을 만들고, 그곳에다 주입을 해주는 건지... 

아무튼... 이 두개는 아마 사용은 잘 하지 않을 것 같긴한데요. 스프링에 추가되어있어서 질문드립니다. 

다시 질문을 작성하자면, @Autowired에서 target으로 parameter이랑, annotation은 언제 사용되는건가요?

답변 3

0

박용훈님의 프로필 이미지
박용훈
질문자

그렇군요... 제가 몰랐는데... 이제 알겠네요. 나중에 한번 써봐야 겠어요.ㅎㅎ 감사합니다. 

0

백기선님의 프로필 이미지
백기선
지식공유자

파라미터에 @Autowired를 쓰는 경우는 빈의 생성자나 메소드 파라미터를 통해 빈을 주입받고 싶을 때 쓸 수 있고, 애노테이션에 사용하는 경우는 @Autowired를 메타 애노테이션으로 사용해서 커스텀 애노테이션을 만들 때 씁니다.


0

박용훈님의 프로필 이미지
박용훈
질문자

처음에는 annotation만 궁금했는데, 다시 보니 파라미터도 있더군여. 그래서 질문에 파라미터도 추가해서 질문합니다.ㅎㅎ