어노테이션

@로 시작하는 표시는 호출이 아니라 설명입니다.

표시

어노테이션은 클래스나 메서드에 붙는 표식이다. @GetMapping("/")은 home을 호출하는 문장이 아니다. 앱이 켜질 때 Spring이 이 표식을 읽고, GET / 요청을 home 메서드로 보낸다.

@Controller
public class HomeController {
    @GetMapping("/")
    public String home() {
        return "home";
    }
}

@Controller는 클래스에, @GetMapping은 메서드에 붙는다. 붙일 수 있는 자리는 어노테이션마다 정해져 있다. 메서드용 표식을 클래스에 붙이면 컴파일 오류다.

자주 보는 이름

표식 Spring이 하는 일
@Controller 이 클래스의 메서드가 웹 주소를 받는다. 반환 문자열은 템플릿 이름이다.
@RestController 반환 객체를 JSON으로 보낸다.
@Service 이 클래스를 서비스 객체로 만들어 둔다.
@GetMapping GET 주소와 메서드를 연결한다. 저장은 @PostMapping이다.

표식의 정의도 Java 인터페이스다. 다만 강좌에서 새로 만들어 쓸 일은 없고, Spring이 제공하는 것을 붙이면 된다. 화면과 API로 이어지는 결과는 화면과 API 단원에 있다.