TIL/Java & Spring Boot

Spring Framework 4 - Spring Legacy Project 뜯어보기

삼공비 2021. 4. 6. 21:19

https://doingsomething.tistory.com/17

 

Spring Framework 3 - Spring MVC 구조와 처리과정

만들어진 스프링 프로젝트를 보기에 앞서, Spring MVC가 어떻게 요청을 처리하는지 알아본다. 대략적인 처리과정은 위 이미지와 같다. 대략적인 설명은 아래와 같습니다. 자세한 설명은 앞으로 올

doingsomething.tistory.com

이전 글에서 큰 틀에서 Spring MVC 처리과정을 살펴보았습니다. 이번 글에서는 이러한 처리과정이 어떤 방식을 통해 이루어지는지 프로젝트에 있는 파일들을 통해서 알아보겠습니다.

 

1.

가장 우선적으로 요청이 들어오면 web.xml로 요청이 전달됩니다. 

그리고 web.xml에서 DispatcherServlet이 그 요청을 처리하기 위해서 appServlet폴더 밑에 있는 servlet-context.xml을 실행 시킵니다.

 

2.

여기서 HandlerMapping의 역할을 수행합니다. 즉 url 패턴에 맞는 컨트롤러는 찾습니다. 그리고 맞는 컨트롤러를 찾으면 return 값으로 돌아오는 view 파일 이름을 받아옵니다.

 

3.

받아온 view 파일 이름은 다시 servlet-context.xml로 돌아오고, 이번에는 ViewResolver 역할이 수행됩니다. 프로젝트를 생성할때 만들어진 prefix와 suffix로 view 파일 경로를 만들줍니다.

 

4.

이렇게 만들어진 view파일을 가지고 jsp파일이 실행되면서 클라이언트에게 보여지게 됩니다.

 

 

1 . web.xml 파일을 열어서 보면 초록생 상자 속에 servlet-context.xml의 파일 경로가 설정되어있습니다. 이걸 통해서 servlet-context.xml을 찾고 컨트롤러를 찾아달라는 처리를 보내게됩니다.

2. servlet-context.xml 파일을 열어보면 위에 붉게 표시된 부분이 annotation를 활성화 시키는 문장입니다.

annotation을 적고 url패턴과 전달방식(get, post)를 지정해주어야 컨트롤러로서의 기능을 할 수 있습니다.

3. url 패턴에 맞는 컨트롤러를 찾아서 실행된 후 받아온 view 파일 이름은 servlet-context.xml 속에 ViewResolver(두번째 붉은 상자)를 통해서 주소가 완성되게 됩니다. 예를 들어 컨트롤러에서 받아온 view 이름이 home이라면 prefix를 통해서 /WEB-INF/views/가 앞에 붙고,

suffix가 .jsp를 붙여주어 /WEB-INF/views/home.jsp로 완성시켜 줍니다. 

 

4. 이렇게 완성된 주소로 home.jsp파일이 실행됩니다.