Spring MVC and iBatis Example - jPetStore 분석 (1)
Spring MVC와 iBatis를 이해하기 위해 jPetStore를 분석해본다. 그 첫번째 시간
jPetStore 분석하기
jpetstore는 Spring Framework와 iBatis를 연결하여 사용하는 Spring의 예제이다. jpetstore는 Spring Framework 2 를 다운로드 받고 압축을 풀면 sample 폴더에서 찾을 수 있다. Spring Framework 3에는 petclinic이라는 Sample만 있으며, Persistance Layer로는 JPA, JDBC, Hibernate를 사용한다. Spring 3의 petclinic 분석은 차후에 하도록 한다.
들어가기에 앞서 다음 프로그램들이 설치되어 있어야 한다.
- JDK 1.4이상 (JDK 5 권장)
- Ant
- 서블릿 컨테이너 (Apache Tomcat 권장)
jpetstore 어플리케이션을 크게 두 부분으로 나누어 볼 수 있으며, 서로 다른 컴포넌트로 교체 가능하다.
- SpringMVC (web application layer) - 웹 요청을 받아들이고, 처리해서, 결과물을 사용자에게 보여준다.
- iBatis (Persistance layer) - web application layer에서 database의 데이터를 사용할 때 쉽게 쓸 수 있도록 도와준다.
내부 설정과 코드를 살펴보기 전에, 실행부터 해보자. jpetstore 디렉토리로 이동하여 ‘ant warfile’을 하면 warfile이 생성된다. (Ant가 설치되어 있어야 한다) 생성된 war파일을 Container에 Load해본다. 예를 들어 Apache Tomcat의 경우, webapps 폴더에 복사하고, http://localhost:8080/jpetstore/ 주소로 접속하여 jpetstore의 페이지가 뜨는 것을 확인한다.
SeanMacBook:~/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore$ ls -al
total 48
drwxr-xr-x 12 Yee staff 408 Sep 20 12:52 ./
drwxr-xr-x 7 Yee staff 238 Sep 20 12:54 ../
drwxr-xr-x 8 Yee staff 272 Sep 20 12:52 annotation/
drwxr-xr-x 7 Yee staff 238 Sep 20 12:52 attributes/
-rw-r--r-- 1 Yee staff 138 Jun 14 2007 build.bat
-rw-r--r-- 1 Yee staff 5241 Feb 7 2008 build.xml
drwxr-xr-x 6 Yee staff 204 Sep 20 12:52 client/
drwxr-xr-x 6 Yee staff 204 Sep 20 12:52 db/
-rw-r--r-- 1 Yee staff 5368 Jun 14 2007 readme.txt
drwxr-xr-x 3 Yee staff 102 Sep 20 12:52 src/
drwxr-xr-x 6 Yee staff 204 Sep 20 12:52 war/
-rw-r--r-- 1 Yee staff 19 Jun 14 2007 warfile.bat
SeanMacBook:~/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore$ ant warfile
Buildfile: build.xml
build:
[mkdir] Created dir: /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/.classes
[javac] Compiling 72 source files to /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/.classes
[javac] Note: /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/src/org/springframework/samples/jpetstore/web/struts/BaseActionForm.java uses or overrides a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[copy] Copying 7 files to /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/.classes
[mkdir] Created dir: /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/war/WEB-INF/lib
[jar] Building jar: /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/war/WEB-INF/lib/jpetstore.jar
[copy] Copying 21 files to /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/war/WEB-INF/lib
[copy] Copying 1 file to /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/client
warfile:
[mkdir] Created dir: /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/dist
[war] Building war: /Users/Yee/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore/dist/jpetstore.war
BUILD SUCCESSFUL
Total time: 3 seconds
SeanMacBook:~/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore$ ls dist/
jpetstore.war
SeanMacBook:~/Documents/Workspace/spring-framework/spring-framework-2.5.5/samples/jpetstore$