Back-End/Java

[Spring] Legacy Project Controller 설정 및 MVC 구조

CJun 2021. 6. 9. 00:12
반응형
폴더 위치

 

 

하위폴더 매핑 코드하기
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
	<resources mapping="/resources/**" location="/resources/" />

※ 별한개(*)는 자식 폴더까지만 확인한다.

별두개(**) 자신의 하위 폴더 모두를 확인한다.

 

기본경로 입력 및 컨트롤러 설정

<context:component-scan base-package="com.example.controller" />

 

HomeController.java
package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import lombok.extern.java.Log;

@Controller
@Log
public class HomeController {

	@GetMapping("/")
	public String index() {
		// http://localhost:8000/
		return "index";
	}
	
}

 

Spring MVC 모델 구조

① 클라이언트가 해당 어플리케이션에 접근하게 되면

접근한 URL 요청을 DispatcherServlet이 가로챈다.

이러한 이유는 web.xml에 등록된 DispatcherServlet의 url-pateern이

해당 어플리케이션의 모든 url 등록되어있기 때문

그래서 특정 url로만 적용을 하고싶다면 url-pattern의 범위를 변경시켜주면 된다.

 

② 가로챈 정보를 HandleMapping에게 보내주어 해당 요청을 처리할 수 있는 Controller를 찾아낸다.

 

③ HandleMapping이 해당 요청을 처리할 Controller를 찾았다면

요청을 Controller에 보내주고 Controller는 사용자가 직접 구현해야 한다.

 

④ Controller를 해당 요청을 처리하고 요청 응답을 받은 View의 이름을 리턴을 한다.

 

⑤ 이 때 ViwResolver가 먼저 받아서 해당하는 View가 있는지 검색한다.

 

⑥ 해당 View가 있다면 처리결과를 View에 보낸다.

 

⑦ 이렇게 나온 결과를 DispatcherServier에 보낸다.

 

⑧ 마지막으로 DispatcherServlet은 최종 결과를 클라이언트에 전송한다.

 

 

반응형