@Componet 애너테이션

EUNJI LEE·2023년 8월 4일
0

Spring

목록 보기
6/13
post-custom-banner

@RestController와 @Componet

스프링 부트에서 컨트롤러 역할을 하는 클래스에 선언하는 @RestController@Componet처럼 취급한다. 이전 포스팅에서 @Componet 애너테이션이 선언된 클래스들을 찾아서 전부 빈으로 등록하는 역할을 하고 @Componet 애너테이션이 @RestController를 감싸고 있다고 했다. 그래서 다른 두 개의 애너테이션이 어떻게 @Componet 역할을 하는지 얘기해보려고 한다.

Spring Boot 포스팅 바로 가기

@RestController

라우터 역할을 하는 애너테이션으로 @RestController 애너테이션을 작성해야 요청에 맞는 메소드를 실행할 수 있다.

💡 라우터(router)
HTTP 요청과 메소드를 연결하는 장치를 말한다.
라우터란? -티스토리 링크

@RestController
public class BasicController {
	@GetMapping("/test")
	public String test() {
		//매핑된 주소로 요청이 들어오면 실행할 로직 작성
		return "test/test"; //test 폴더의 test.jsp 화면을 여는 응답 
	}
}

위와 같은 기본 컨트롤러 클래스에서 ctrl을 누른 상태로 @RestController를 클릭하면 아래와 같은 코드를 확인할 수 있다.

@Controller@ResponsBody 애너테이션이 함께 선언되어 있는 모습을 확인할 수 있는데 이는 @RestController@Controller@ResponsBody를 포함하고 있다는 것을 알려준다.

여기서 @Controller 애너테이션에 ctrl을 누른 상태로 클릭해서 @Controller 애너테이션을 확인해보면 아래와 같은 코드를 확인할 수 있다.

코드를 보면 바로 알 수 있지만 @Controller@Componet 애너테이션을 선언하고 있다. 앞서 포스팅했을 때 말했던 @Configuration@Repository@Controller@RestController@Service 애너테이션들은 전부 @Componet 애너테이션을 갖고 있는 애너테이션들이었다.

그래서 필요에 따라 어떤 애너테이션을 작성해도 빈으로 등록되어 스프링이 관리하게 된다. 애너테이션들의 이름은 해당 클래스를 빈으로 등록하면서 무슨 역할을 하는지 명확하게 구분하기 위해 나뉘어있다고 볼 수 있다.

profile
천천히 기록해보는 비비로그
post-custom-banner

0개의 댓글