Spring Boot에서

한 요청이 Java 메서드 두 번의 호출로 끝납니다.

순서

  1. 브라우저가 GET /를 보낸다.
  2. Spring이 @GetMapping("/")가 붙은 메서드를 찾는다. 이 찾기는 어노테이션 단원의 표식이다.
  3. 그 메서드 본문이 실행된다. villaService.list()는 메서드 호출이다.
  4. return "villalab/F_005"가 템플릿 파일을 고른다. 고르는 규칙은 화면 단원과 같다.
@Controller
public class HomeController {
    private final VillaService villaService;

    public HomeController(VillaService villaService) {
        this.villaService = villaService;
    }

    @GetMapping("/")
    public String home(Model model) {
        model.addAttribute("posts", villaService.list());
        return "villalab/F_005";
    }
}

VillaService는 다른 패키지의 클래스다. 파일 위쪽 import가 그 이름을 연결한다. 서비스 안의 list가 리포지토리를 다시 호출하고, 리포지토리가 데이터베이스로 SQL을 보낸다.

JSON 주소는 같은 순서에서 마지막만 다르다. @RestController 메서드는 템플릿 이름 대신 객체를 반환한다.