본문 바로가기

카테고리 없음

Day 73

Client가 웹 서비스에 요청을 보내면 Dispatcher Servlet이 매핑되는 Handler를 찾습니다.

Controller가 요청을 처리한 후에 View를 Dispatcher Servlet에게 전달해주고 다시 사용자에게 응답이 되는 흐름입니다.

Controller가 View를 반환하기 위해서는 ViewResolver가 사용되며, ViewResolver 설정에 맞게 View를 찾아 렌더링합니다.

 

@Controller

 

해당 자바 클래스가 Controller인지 알려주는 방법은 간단합니다.

@Controller 를 적어주면 spring에서 알아서 작업해주거든요.

@RestController 라는 어노테이션도 있지만 View가 아닌 객체 자체를 반환할때 쓰이므로 지금은 사용하지 않을게요.

 

GetMapping

 

@Controller
public class HelloController {

    @GetMapping("hello")
    public String hello(){
        return "hello";
    }
}

HelloController를 새로 만들어주고 어노테이션을 통해 controller임을 명시해줍니다.

그 다음으로 @GetMapping("hello")를 적어줬습니다.

이는 localhost:8080/hello 요청이 들어오면 아래의 함수를 실행하라고 해석하시면 됩니다.

 

함수에서는 뜬금없이 String으로 hello를 리턴해주고 있어요.

그러면 Spring이 자동으로 src/main/resouces의 templates에서 hello라는 이름의 View를 찾아서 반환해줍니다.

참고로 static에 들어가는 정적 contents들은 따로 controller가 없어도 알아서 찾아줍니다.정확히는 스프링 컨테이너에 해당 이름을 사용하는(GetMapping 해주는) 컨트롤러가 없다면 static에서 찾도록 설계되어 있습니다.