티스토리 뷰
이전글 http://holy1017.tistory.com/31
이전글에서 쓰던 프로젝트이다 http://holy1017.tistory.com/31
위 스샷에서 같은 번호끼리 똑같은 구조라는걸 볼수있는데
펼쳐서 보면 똑같은 폴더 맞다...
위쪽의 자바 소스 구조는 말그대로 자바파일을 다룰때 보는 방식을 위한 방식이고
위쪽의 디플로이드 리소스는 웹 파일을 다룰때 보기 편하라고 있는것이다.
아래쪽 src는 실제 프로젝트 폴더(여기선 워크스페이스/test/)에 저장된 파일 위치를 나타낸 것이다.
자그럼 서버 구동시 제일 먼저 읽어오는 부분(실행 순서)이 있는데.
- 첫번째로 서버 설정파일(xml)들이다.
이클립스에선 서버 프로젝트내에 해당 서버 폴더(톰캣이라던가)안에 보면 xml파일들이 쭉 있다.
해당 정보는 구글링 참조.
한국에선 제우스라던가 웹투비를 사용하는 경우가 많아서..(실은 나도 잘 몰라)
- 두번째 /test/src/main/webapp/WEB-INF/web.xml 파일이다.
- 세번째는 web.xml 안에 설정된 정보대로 쭉 읽고
- 네번째는 자바파일이다.
- 실제로 홈페이지가 뜨는 과정
web.xml 파일 안에 있는
<!-- Processes application requests --> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
을 읽어서
servlet-mapping 정보의 url-pattern 대로
http://localhost:8080/test/ 라는 요청을 받으면
/WEB-INF/spring/appServlet/servlet-context.xml 라는 파일의 설정대로
<context:component-scan base-package="holy.com.test" />
holy.com.test 라는 자바소스 패키지 안에 있는 자바 파일들과 비교해본후
비교해본 결과
/test/src/main/java/holy/com/test/HomeController.java 파일 안에
//
@RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model) { logger.info("Welcome home! The client locale is {}.", locale); Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate ); return "home"; }
//라는 부분에서
@RequestMapping(value = "/", method = RequestMethod.GET)
빨간색 친부분과 경로명이 일치하므로
home 메소드를 실행후(public String home(Locale locale, Model model) {} 부분 말하는거다)
(실행 내용은 serverTime 라는 이름을 만들고 거기다가 메소드가 실행됬던 시간을 넣은것 뿐이다)
home 이라는 경로를 돌려준뒤(return "home";)
servlet-context.xml 에서 설정대로
<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>
아까 리턴으로 받았던 home(return "home";)에다가+.jsp(파랑색 설정 부분)라는 확장자를 결합시킨뒤
/test/src/main/webapp/WEB-INF/views 라는 폴터 내에(빨강색친부분)서 해당 파일을 검색
/test/src/main/webapp/WEB-INF/views/home.jsp 라는 파일을 실행 시킨다.
home.jsp 안에 ${serverTime} 라는 부분은 HomeController.java에서
model.addAttribute("serverTime", formattedDate ); 으로 받았던 시간이다.
이걸로 기본적인 스프링 프로젝트가 실행되는 순서를 봤다.
'스프링' 카테고리의 다른 글
9) 서블렛 추가 (0) | 2015.10.19 |
---|---|
8) 스프링 로그 출력 (0) | 2015.10.19 |
작성 중단 - 터짐- 스프링 로그 출력, 톰캣 서버 임시 파일 경로 변경 방법 (0) | 2015.10.19 |
7) 스프링 어노테이션 예제 리포지터리 annotation @Repository ,uikit scrollspy 사용법, c:forEach 사용 (0) | 2015.10.15 |
6) 어노테이션 예제 서비스 annotation @Service (0) | 2015.10.15 |
5) 어노테이션 예제 컨트롤러 annotation @Controller (0) | 2015.10.15 |
1) 스프링 프로젝터 생성하기 (0) | 2015.10.12 |