일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- str to char array
- 자바
- 자바 순열 코드
- 재귀함수
- 자바스크립트 이벤트처리
- 자바스크립트 이벤트중지
- 자바입출력
- jquery 필터선택자
- jquery 속성선택자
- Java
- char to str
- Interface
- 알고리즘
- java lambda
- 자바 조합 재귀
- 후위표기
- 순열 재귀
- 순열코드
- java 내부 클래스
- jquery dom 계층 선택자
- 서로소
- 알고리즘 그래프
- 조합 재귀
- parseInt()
- inner class
- jquery 이벤트 처리
- java Collections.sort()
- 상속
- 자바 재귀 조합
- 재귀
- Today
- Total
유블로그
[Spring] Spring Web Application 동작원리 & spring 흐름 본문
Spring Web Application 동작원리
- Tomcat 이 src>webapp>WEB-INF>web.xml 읽는다.
1-1) listener 실행
- 맨 처음 listener 를 실행한다. (사용자의 요청에 의해 실행되는 것이 아니라 자동으로 호출됨) -> listener 가 관리하는 하나의 container 가 만들어진다. 그 container 를 Root 라고 한다. 보통 Root에 프로젝트에서 공용으로 쓰는 것들을 넣는다.(DB 같은 정보들)
- listener 클래스에 있는 init 같은 거 쭉 수행한다.
- context-param 에 있는 xml 파일 (/WEB-INF/spring/root-context.xml)읽는다. 설정 내용이 있다면 그것을 적용한다.
- Dispatcher Servlet 를 메모리에 올린다.
- Root 에 있는 것들을 사용할 수 있다.
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 에 있는 클래스 읽는다. ( 해당되는 xml 을 읽음. 아래에서는 servlet-context.xml )
<servlet> <init-param> </init-param> |
-> load-on-startup 으로 순서 높여준다~!
<servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> |
.do 로 끝나는 모든 파일에 연결한다...? -> 아직 잘 모르겠음 ㅜ
appServlet 이 가진 servlet-class 를 .do 로 매핑..?
- servlet-context.xml
<resources mapping="/resources/**" location="/resources/" /> |
-> /resources/ 여기 있는 것들을 /resources/** 여기로 mapping
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> |
-> controller 가 준 페이지 앞에 /WEB-INF/views/ 를 붙이고, 마지막에 .jsp를 붙여라!
ex) "home" 이 리턴된 경우, /WEB-INF/views/home.jsp 로 이동
<context:component-scan base-package="com.ssafy.lecture" /> |
-> 해당 패키지 아래 있는 파일 중 @Component, @Controller, @Service, @Repository 붙은 것들을 자동 bean 등록~!
+ 전체 흐름 간단히
a.do 라는 사용자의 요청이 Dispatcher Servlet 에게 가면, Handler Mapping한테 어디로 가야하는 지 물어보면 가야하는 컨트롤러 알려줌.
그 컨트롤러에서 서비스와 DAO 거쳐서 ModelAndView를 리턴해주면 Dispathcer Servlet 은 그걸 받아서 View Resolver에게 가고 거기서 prefix , suffix 이런 거 받아서 어디로 갈지 정해지면 view 로 결과 받아서 사용자에게 return!
'Spring' 카테고리의 다른 글
spring mvc 구조 프로젝트 에서 spring ajax 프로젝트로 바꾸기 (0) | 2020.10.28 |
---|---|
[Spring-Boot] jsp 사용할 수 있게 dependency 주기 (0) | 2020.10.27 |
[Spring-Boot] 프로젝트 생성과 설정 (0) | 2020.10.27 |
[Spring] ConflictingBeanDefinitionException (0) | 2020.10.21 |
[STS] spring project 생성과 기본 설정 + pom.xml 의 역할 (0) | 2020.10.21 |