<실행 순서> 위치 중요
1. URL요청
http://localhost:8080/controller
2. DispatcherServlet (front controller 역할수행 (spring framwork에서 제공). web.xml)
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3. HomeController.java 요청을 view로 전달해서 브라우저 화면에 띄워주는 역할
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
....
...
retrun "home"; //뷰의이름 home.jsp
}
4. home.jsp (webapp-web-inf-views)
5. servlet-context.xml (webapp-web-inf-spring-appServlet)
-> 뷰(home.jsp)를 찾아가는 정보
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<context:component-scan base-package="com.zerock.controller" />
"/WEB-INF/views/" / 여기에 value=".jsp" />jsp 붙혀서 retrun "home"; 이 home.jsp를 찾아주세요
-----------------------------------
web.xml
8080 url 뒤로 들어오는 모든 url 요청은 다 web.xml의 servlet-mapping 이 받는다.
homecotroller 처리부분
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
...
retrun "home"; //뷰의이름 home.jsp
루트로 들어오는 get방식의 요청은 home이 받아서 처리
루트는 tomcat module의 /controller 까지가 루트
1. 프레임워크 실행 후 스프링이 사용하는 메모리 영역 생성 - context(컨텍스트)
ApplicationContex라는 이름의 객체 생성
2. 스프링 자신이 객체를 생성, 관리해야하는 객체들에 대한 설정 - root-context.xml
3. src /root-context.xml 에 설정되어있는 <context:component-scan> 태그의 내용을 통해 'org.zerock.sample' 페이지를 스캔
4. 해당 클래스중 @component존재 하는 클래스의 인스턴스 생성
5. 즉 restaurant에는 chef객체 필요하다는 @autowired 설정이 있으므로 스프링은 chef객체의 레퍼런스를 restaurant 객체에 주입
-------------------------
'spring' 카테고리의 다른 글
의존성 주입 (Dependency Injection), 어노테이션 (0) | 2022.12.19 |
---|---|
파일 역할 정의 (0) | 2022.12.19 |
뭔지 몰라 (0) | 2022.12.19 |
라이브러리 빌드방식 (프로젝트 필수 설정 2) (0) | 2022.12.19 |
기본 개념 (0) | 2022.12.19 |