오랜만에 찾아왔습니다~!!!
기다리신 분들은 없겠지만...
이번에는 Spring에 관한 내용을 다뤄 볼껀데요~!!
Spring은 국내 회사에서 대부분 사용 할 정도로 기본적인 보안이나 성능이 뛰어나기 때문에
익혀두시면 나중에 매우매우매우 좋다는 점 꼭 기억해두시고!!
이제 출발해 볼까요??
1. 개념
Spring은 자바 플랫폼을 위한 프레임 워크 입니다.
실제 이름은 Spring Framework 이지만 간단하게 슾흐링... Spring으로 부르죠~!!
개념은 짧게하고 도대체 스프링을 구성하고 있는 세녀석들이 어떤 역할을 하는지
궁금하실텐데요 바로 진행하도록 하겠습니다.
2. Controller
Controller는 사용자(Client)의 요청(Request)을 어떻게 처리 할 지(Handling) 결정하는 녀석입니다.
이렇게만 말하면 이해가 힘드실 수 있으니 소스코드를 보면서 이야기하도록 하죠!!!
@Controller
public class ExampleController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello(ModelMap modelMap){
return "/example/hello";
}
}
위와 같이 코드를 작성 할 수 있는데요.
이제 각각의 의미를 알아보도록 하겠습니다.
Annotation : @Controller
Controller의 역할을 수행한다고 명시해주는 어노테이션 입니다.
Client의 Request가 서버에 도착했을 때 Controller에 정의 된 기준대로 요청을 처리하게 되는데요
이를 위해 @Controller 라는 어노테이션을 명시하여 이녀석이 컨트롤러이며 요청이 들어오면
이녀석의 내용을 기준 삼아 요청을 처리하라는 말 입니다.
Annotation : @RequestMapping
요청이 Controller에 들어오게되면 Client의 Request를 처리하는 기준점들 입니다.
위의 코드에서 @RequestMapping(value = "/hello", method = RequestMethod.GET) 이라고 명시되어 있는데요 서버의 BASE_URL이 http://ysjleader.com 이라고 가정하겠습니다.
사용자가 http://ysjleader.com/hello 라고 주소창에 검색을 하게되면
@RequestMapping(value = "/hello", method = RequestMethod.GET) 이녀석으로 매핑되게 됩니다.
"/hello"라는 것은 상대경로로써 BASE_URL + "/hello"가 됩니다.
그리고 Client는 주소창에 http://ysjleader.com/hello 라고 입력 후 엔터만 쳤으므로
Http Request Method는 GET 이 되겠죠
따라서 Spring 내부에서 사용자 요청을 Controller가 가져와 Request Mapping을 시행하게 됩니다.
Return Value : return "/example/hello"
여기 return "/example/hello" 요거 리턴 값이 뭔가 경로같지 않나요???
그렇습니다아~!!!!! 역시 똑똑하시군여 이 리턴값은 Client의 Request를 처리하고 사용자에게
어떤 page를 리턴할지 결정하게됩니다.
여기서 질문 그러면 example 디렉토리 밑에 hello.jsp와 같은 파일이 있는걸까요???
그렇습니다아~!!!! 역시 똑똑.... 맞습니다.
저의 경우에는 WEB-INF/jsp/example/hello.jsp가 있어요
dispatcher-servlet.xml에 ViewResolver prefix를 "/WEB-INF/jsp/" 로 지정해놔서
"/example/hello"만해도 자동적으로 /WEB-INF/jsp/example/hello.jsp로 매핑 된것이죠~!!!
이거에 관련해서는 또 나중에 상세히 다루도록 하겠습니다!!!
Parameter : ModelMap modelMap
이녀석은 return 과 매우 밀접한 관계가 있는데요.
Client Request를 수행하고 다음 페이지 즉 현재 소스코드에서는 hello.jsp를 리턴하면서
해당 hello.jsp 페이지에 전달해야 할 내용이 있을 경우에
modelMap에 담아서 보내게 됩니다.
이는 GET / POST로 값 전달하기에 관해 다루면서 이야기 하도록 하겠습니다.
자 오늘의 글을 정리해보자면
사용자(Client)로 부터 요청(Request)이 들어옵니다.
그리고 @Controller 라고 명시되어있는 Controller Class가 요청을 전담하여 처리합니다.
처리하는 기준은 @RequestMapping에 정의 되어 있는 기준으로 요청을 매핑해줍니다.
오늘의 글에서는 요정도만 알아두고 넘어가도록 하겠습니다.
(너무 달리면 다들 피곤하니까아)
'Develop > Server' 카테고리의 다른 글
SpringBoot AOP 이해 - AOP(1) (1) | 2019.11.29 |
---|---|
SpringBoot Controller, Service, DAO 이해 - Service(2) + MyBatis (5) | 2019.11.12 |
SpringBoot Controller, Service, DAO 이해 - Service(1) (9) | 2019.03.29 |
SpringBoot Controller, Service, DAO 이해 - Controller(3) (5) | 2019.03.25 |
SpringBoot Controller, Service, DAO 이해 - Controller(2) (4) | 2019.03.22 |