본문 바로가기
Spring

Spring작동과정

by 새싹감자 2022. 10. 20.

클라이언트는 브라우저만 있으면된다.

그리고 서버에서는 WAS가 떠있어야된다. (Tomcat이라는 서버)

톰캣을 띄우면 config라는 폴더 안에 server.xml, web.xml와 같은 설정파일을 싹 읽어들인다.

 

톰캣을 띄우면 다음과 같은 과정이 발생한다.

 

  1. server.xml
    • 만든 프로젝트를 메모리에다가 올린다. src-main-Meta-INF-context.xml 실행
  2. context.xml
    • 이런 resource를 만들어 낸다는 설명 . WatchResource에 있는걸 봐(web.xml)
  3. web.xml
    • 웹이 아닌애들과 웹에서 설정해야하는 애들을 나눈다.
    • 웹 관련X
      • 웹과 관련없는건 context-param에서 해준다. (service, dao, dto, aop...db 설정), 이런 프로젝트가 올라갈때 이런 param들을 준다는 뜻. root.xml의 위치를 알려준다.
      • listener는 감시자로써 로딩되는 순간을 잡아내고 context-param을 가져와준다. 이 contextLoaderListener가 root-context.xml을 로딩해준다.
    • 웹 관련
      • filter
      • servlet(DispatcherServlet)
      • servlet-mapping
  4. root-context.xml
    • model설정(component-scan 또는 bean)
    • 여기서 비웹적인 애들을 처리해준다.DAO, Service, Dto, AOP 같은것들,,
<context:component-scan base-package="com.ssafy.ws.model, com.ssafy.ws.util"></context:component-scan>
  1. servlet-context.xml
    • 여기서 웹적인 애들을 처리해준다. Controller
<context:component-scan base-package="com.ssafy.ws.model, com.ssafy.ws.util"></context:component-scan>

 

클라이언트가 호출을 하면(board/list) 다음과 같은 과정이 발생한다.

 

  1. DispatcherServlet은 프론트 컨트롤러 역할을 한다. if(act='')이런식으로 걸러준다.
  2. DispatcherServlet이 실행되고 init-param을 실행해준다.
  3. setcontextconfig 함수 실행하고 servlet-context.xml이 실행된다.
  4. handler-mapping을 통해 controller에 해당 매소드를 실행한다.
  5. controller에서 서비스호출, dao호출, db를 통해 결과를 얻어온다.
  6. 이를 통해 controller에서 view, model이 나온다.
  7. viewResolver가 servlet-context.xml에서 beans-property를 통해 앞뒤에 붙을 view의 경로를 알려준다. 
  8. forward를 통해 jsp를 browser로 보내준다.

Filter는 브라우저와 해당 과정을 걸러주는것(req,res) ex)web.xml에서 인코딩 같은거

Aop는 컨트롤러, 서비스, dao사이에 발생하는일

Intercepter는 dispatcherServlet과 controller사이에 발생하는 일

 

context.xml에서 넣어놓은 db root-context에서 씀

servlet-context에 css, 이미지 등등 자원을 넣어놓는다.

'Spring' 카테고리의 다른 글

Http 파라미터 처리  (0) 2023.12.25
MVC 패턴  (0) 2023.12.25
스프링 Ioc  (0) 2023.12.25
스프링과 메이븐  (0) 2023.12.25
Rest Api  (0) 2022.10.27

댓글