[Spring / 스프링] DI | @Component @Controller @Service @Repository 차이

스프링 프레임워크는 어노테이션을 이용해서 객체를 생성할 수 있습니다. @Component @Controller @Service @Repository 중 하나를 class 명 앞에 붙여주면 됩니다. 네 개의 어노테이션 모두 객체를 만들어주는 기능을 수행합니다. 다만 조금씩 기능의 차이가 있습니다. 각 어노테이션의 특징을 간단히 정리해보겠습니다.

@Component

객체를 만드는 가장 기본적인 어노테이션입니다. 이 어노테이션에서 세부적인 기능이 추가되고 특화된 형태가 @Controller @Service @Repository라고 보면 됩니다.

@Controller

이름에서도 알 수 있듯 MVC 패턴에서 컨트롤러 역할을 하는 클래스에 붙여 줍니다. @RequestMapping를 사용할 수 있다는 특징이 있습니다.

@Service / @Repository

@Service / @Repository는 MVC 패턴이 비즈니스 로직을 처리하는 과정을 떠올리면 됩니다. Controller는 Service - dao를 호출하며 모델에 값을 저장합니다.

 

@Service는 service 클래스에 사용됩니다. service 클래스라 하면, 보통 작업을 수행하는 용도의 클래스를 의미합니다.

 

@Repository는 dao 클래스에 붙입니다.

 

결론적으로 @Controller @Service @Repository는 MVC 패턴에 맞게 사용되는 특화된 어노테이션이고 그 외에는 @Component를 사용한다고 보면 되겠네요.

반응형

댓글

Designed by JB FACTORY