[Spring] Stereotype Annotation

kiteB·2021년 10월 7일
1

Spring

목록 보기
1/3
post-thumbnail

Stereotype Annotation이란?

Annotations denoting the roles of types or methods in the overall architecture (at a conceptual, rather than implementation, level).
: 전체 아키텍처(구현 수준이 아닌 개념적 수준)에서 타입 또는 메서드의 역할을 나타내는 어노테이션

  • 스프링은 자동으로 Sterotype의 클래스들을 탐지하고 Bean으로 등록한다.
  • 디폴트로 적용되는 어노테이션

즉, Stereotype Annotation을 이용하면 자동으로 빈을 등록할 수 있다!


Stereotype Annotation 종류

@Component

이 어노테이션이 붙은 클래스가 "스프링 컴포넌트"임을 나타낸다.

  • @Component가 붙은 클래스는 빈 스캐너를 통해 자동으로 빈으로 등록된다.
  • @Controller, @Service, @Repository의 최상위 어노테이션

@Component vs @Bean

모두 스프링 빈을 만드는데 사용된다!

  • @Component
    • 클래스 상단에 적으며, default로 클래스 이름이 Bean의 이름이 된다.
    • 스프링에서 @ComponentScan을 사용해서 자동으로 찾아주고 관리해준다.
  • @Bean
    • @Configuration으로 선언된 클래스 내에 있는 메서드를 정의할 때 사용한다.
    • 이 메서드가 반환하는 객체가 Bean이 되며, default로 메서드 이름이 Bean의 이름이 된다.

@Repository

이 어노테이션이 붙은 클래스가 "리포지토리"임을 나타낸다.

  • 스프링은 DAO 관련 빈을 자동등록 대상으로 만들 때 사용하도록 @Repository 어노테이션을 제공한다.
  • @Component를 부여해도 되지만, 스프링에서는 @Repository 어노테이션을 권장한다.

@Service

이 어노테이션이 붙은 클래스가 "서비스"임을 나타낸다.

  • @Component와 같이 빈을 생성하는 역할을 의미한다.
  • 서비스 계층의 빈을 생성하는 역할을 하는 것을 의미한다.
  • 사실 특별한 처리는 하지 않지만, 개발자들이 핵심 비즈니스 로직이 여기에 있구나 하고 비즈니스 계층을 인식하는데 도움이 됨.

@Controller

이 어노테이션이 붙은 클래스가 "MVC의 컨트롤러"임을 나타낸다.

  • MVC에서 컨트롤러 역할을 하는 빈을 나타낸다.
  • @RequestMapping 어노테이션을 사용하여 클라이언트 요청을 특정 컨트롤러에 전달할 수 있게 해준다.

참고자료

stereotype annotation
https://incheol-jung.gitbook.io/docs/q-and-a/spring/stereo-type
https://milkshake91.tistory.com/5

profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글