Spring

태태개발일지 - Componet

태태코 2024. 12. 6. 14:04
반응형

@Component

 

가장 일반적인 형태의 어노테이션으로, 특정 역할에 종속되지 않는 일반적인 Spring bean을 나타낸다.

공통적인 기능을 제공하는 유틸리티 클래스나, 특정 계층에 속하지않는 일반적인 컴포넌트를 정의할 때 사용된다.

 

@Repository

데이터 엑세스계층의 bean을 의미한다.

 

@Service

비지니스 계층의 bean을 의미한다.

 

@Controller

프레젠테이션 계층의 bean을 의미한다.

 

Repository, Service, Controller 모두다 Component를 가지고있는 멀티 어노테이션이다.

 

그렇다면 각 어노테이션에 @Component를 사용할 순 없나?

 

정답은 불가능하지 않다. @Controller, @Service, @Repository 모두 @Component를 함유한 멀티 어노테이션이다.

하지만 이 세가지를 @Component로 대체할 시, 계층간의 명확성이 사라질 뿐만아니라 AOP에서 포인트컷의 장점을 잃게 되고, 

@Repository의 계층의 경우 @DATAException같이 데이터에 대한 오류가 있을 시 @Component 로는 예외처리가 달라 질 수 있다.

 

 

반응형