Spring Boot를 자동 실행해주는 어노테이션.
@Configuration, @EnableAutoConfiguration, @ComponentScan 이 세 가지를 한 번에 묶어준다.
스프링 부트 프로그램을 실행할 때 메인 메서드가 있는 클래스에 선언하여 사용한다.
스프링 컨테이너에 내가 정의한 메서드로 빈(스프링 컨테이너가 관리해주는 자바 객체)을 생성할 때 사용한다.
@Component, @Service, @Repository, @Controller, @Configuration가 붙은 클래스를 자동으로 스캔하여 빈으로 등록해준다.
직접 작성한 클래스를 빈으로 등록하기 위한 어노테이션이다.
@Service, @Repository, @Controller어노테이션의 상위 개념이다.
자바 코드로 생성한 메서드가 반환하는 객체를 빈으로 등록해준다.
필드, 세터 메서드, 생성자에 사용하며, 필요한 빈을 자동으로 할당해준다.
HTTP요청을 처리하는 클래스에 사용한다.
@Controller에 @ResponseBody가 결합된 어노테이션이다.
메서드 반환 결과를 JSON형태로 반환하며, @ResponseBody역할을 자동 수행한다.
일반적인 @Controller 어노테이션은 API와 View를 동시에 사용할 때 사용하고, @RestController어노테이션은 View를 사용하지 않고, API만 사용할 때 사용한다.
비지니스 로직을 담당하는 클래스임을 나타낼 때 사용한다.
데이터 접근 로직(DB에 접근하는) 기능을 갖춘 클래스에 사용한다.
스프링에서 지원하는 의존성 주입 어노테이션으로, 필드명 혹은 지정한 이름과 같은 이름의 빈을 찾아서 주입한다. 만일 같은 이름의 빈이 없을 시 같은 타입의 빈을 주입한다.
요청 URL mapping 정보를 설정한다.
클래스 타입과 메소드에 설정 가능하다.
Controller method의 HTTP method를 한정할 수 있다.
같은 URL 요청에 대하여 HTTP method에 따라 서로 다른 메소드로 mapping 할 수 있다.
URL 경로의 변수 값을 메서드 파라미터로 바로 주입해 준다.
따라서 /users/{userId} 에서 userId 자리에 들어온 값을 @PathVariable Long userId 로 받을 수 있다.
HTTP 요청 파라미터 값을 메서드 매개변수에 자동으로 연결해준다.
HTTP 요청 헤더의 특정 값을 자동으로 컨트롤러 메서드의 파라미터 변수에 넣어준다.
HTTP 요청의 쿠키 값을 컨트롤러 메서드 파라미터로 자동 주입해준다.
HTTP요청의 Body에 담긴 데이터를 자동으로 자바 객체로 매핑하여 컨트롤러 메서드 파라미터에 주입해준다.
메서드 반환값을 뷰 대신 HTTP 응답으로 보내준다.