본문 바로가기
Spring/Anotation

내가 사용했던 어노테이션들

by doriver 2022. 10. 13.

요청을 받는 어노테이션

( @Controller, @RequestMapping 등등 )

@Controller

- 요청이 들어오는 스프링 빈
- Dispatcher Servlet에서 @Controller 들을 스캔하고, @RequestMapping 을 참조하여 주소의 path와 일치하는 메소드가 수행된다.
- Class명 위에 위치한다.

@RequestMapping("/경로")

- 클라이언트가 요청한 URL path와 일치하는 메소드가 수행된다.
- Class명 또는 메소드명 위에 위치한다.
- Class명과 메소드명 모두 위치한 경우, /클래스명 경로/메소드명 경로가 된다.

 

데이터를 돌려주는 어노테이션

( @ResponseBody, @RestController 등등 )

 

웹 주소로 요청하면, 웹사이트 View 화면이 아닌 json 같은 데이터를 응답값으로 보내준다.
이러한 요청,응답을 API(Application Programming Interface) 라고 한다.
아래 어노테이션이 사용되면 HttpMessageConverter가 동작하여, 메소드의 리턴값에 따라 String 또는 Json으로 변환된다.

 

@ResponseBody

- 메소드명 위에 위치, 또는 메소드의 리턴값 옆에 위치

- 컨트롤러 메소드의 리턴값이 데이터가 되어, Response 응답값의 body 영역에 넣어 보낸다.
- String을 리턴한 경우, 텍스트 기반 HTML 형식으로 response body에 나타난다.
- Jackson 라이브러리가 설정된 경우, 컨트롤러 메소드에서 Map이 리턴되면 JSON으로 변환되어 response body에 나타난다.


@RestController

- @Controller + @ResponseBody가 합쳐진 어노테이션이다.
- @ResponseBody를 생략해도 메소드에서 리턴된 데이터가 response body 영역에 넣어 보내진다.
- API 형태로 데이터를 리턴할 경우 자주 사용한다.

참고: ResponseEntity로 리턴하기

Response의 Header 값이나 Status Code를 개발자가 세밀하게 제어할 수 있다.

 

 

 

@Autowired

해당하는 Spring Bean을 찾아 사용할 수 있도록 한다.
DI(Depency Injection) 의존성 주입이라고 한다.

 

Spring Bean으로 만들어주는 어노테이션

( @Component , @Controller , @Service , @Repository 등등 )

 

용도에 맞는 어노테이션을 사용

 

@Component

클래스를 Spring Bean으로 만드는 기본 어노테이션

 

@Controller

Spring MVC에서 컨트롤러 역할을 담당하는 Spring Bean으로 만드는 어노테이션
@RequestMapping은 컨트롤러에서만 사용 가능하다.

 

@Service

비즈니스 로직을 구현하는 클래스를 Spring Bean으로 만드는 어노테이션

 

@Respository

DAO같은 Persistence Layer에서 DB와 연동되는 클래스를 Spring Bean으로 만드는 어노테이션

'Spring > Anotation' 카테고리의 다른 글

여러 Annotation  (1) 2024.08.19
어노테이션( @,Annotation )  (0) 2022.12.06