스프링 프레임워크 2.5.2 설치및 HelloWorld 출력하기
http://cafe.naver.com/javakoreait/22
Eclipse Version : 3.4.0
Tomcat Version : 5.5
Spring Version : 2.5.2 http://www.springsource.com/download/community?project=Spring%20Framework
file은 spring-framework-2.5.2-with-dependencies.zip를 다운로드한다.
Jstl Version : 1.1 http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi
file은 jakarta-taglibs-standard-1.1.2.zip를 다운로드한다.
이클립스 플러그인 설치
SpringIDE 플러그인 - http://springide.org/updatesite
설치시 주의할점은 이클립스 업데이트를 통해 플러그인 설치시 feature선택할때 springide내 Dependancies항목은
제외한다. Mylyn이나 AJDT등은 당장 사용하진 않더라도 나중을 위해 함께 선택해 설치한다.
p.s 플러그인은 솔직히 잘모르겠습니다. 그냥 나와있는데로 설치 ^.^.
이제 프로젝트를 하나 생성한다.
1. Dynamic Web Project를 하나 생성해서 HelloWorld라는 프로젝트를 만든다
2. /WEB-INF/lib 폴더 안에
spring-framework-2.5.2-with-dependencies.zip을 압축을 풀어서 dist폴더안에 있는 spring.jar 와
modules폴더안에 있는 spring-webmvc.jar, 마지막으로 /lib/jakarta-commons/commons-logging.jar 인포트한다.
그리고 jakarta-taglibs-standard-1.1.2.zip을 압축을 풀어서 jstl.jar, standard.jar 를 인포트한다.
총 5개의 파일이 인포트 되었으면 개발환결 설정은 완료된 것이다.
HelloWorld 애플리케이션을 Spring기반에 만들어보기
간단히 Spring의 구조 설명
① 클라이언트의 요청에 대한 최초 진입 지점은 DispatcherServlet이 담당하게 된다.
대부분의 MVC를 지원하는 프레임워크가 메인 Servlet을 가지는 것처럼 Spring MVC
또한 메인 Servlet이 최초 진입지점으로 다음의 작업을 처리하게 된다.
② DispatcherServlet은 Spring Bean Definition에 설정되어 있는 Handler Mapping 정보를 참조하여 해당 요청을 처리하기 위한 Controller를 찾는다.
③ DispatcherServlet은 선택된 Controller를 호출하여 클라이언트가 요청한 작업을 처리.
④ Controller는 Business Layer와의 통신을 통하여 원하는 작업을 처리한 다음 요청에 대한 성공유무에 따라 ModelAndView 인스턴스를 반환한다. ModelAndView 클래스에는 UI Layer에서 사용할 Model데이터와 UI Layer로 사용할 View에 대한 정보가 포함되어있다.
⑤ DispatcherServlet은 ModelAndView의 View의 이름이 논리적인 View 정보이면 ViewResolver를 참조하여 이 논리적인 View 정보를 실질적으로 처리해야할 View를 생성하게 된다.
⑥ DispatcherServlet은 ViewResolver를 통하여 전달된 View에게 ModelAndView를 전달하여 마지막으로 클라이언트에게 원하는 UI를 제공할 수 있도록 한다. 마지막으로 클라이언트에게 UI를 제공할 책임은 View 클래스가 담당하게 된다.
1. web.xml 파일 수정
<?xml version="1.0" encoding="UTF-8"?>
|
우선 중요한 부분은 Spring 프레임워크내의 DispatcherServlet을 매핑하게 되는데 이부분은 Spring에서 제어행위를
처리하는 서블릿이다. 그리고 이에 대한 설정파일은 서블릿명-servlet.xml이 된다.
2. 규칙대로 /WEB-INF/helloworld-servlet.xml 을 만든다.
<?xml version="1.0" encoding="UTF-8"?>
|
총 3개의 Bean을 정의하고 있는데 첫번째는 처리제어를 위한 컨트롤러를 정의하고 있는데 springController라는 이름으로 web.SpringController라는 클래스를 매핑해주고 있습니다.
그리고 두번째는 hello.htm으로 들어오는 요청에 대해 springController로 넘기게 되어있고
세번째는 View의 역할을 할 JSP에 대한 설정이다
3. 다음에는 SpringController를 만듭니다
web패키지 아래에 SpringController를 만들되 org.springframework.web.servlet.mvc.Controller를 상속받아 구현합니다.
package web; import java.util.Date; public class SpringController implements Controller {
|
소스내용을 보면 단순하게 요청에 대해 현재 시간을 담은 변수를 now라는 이름으로 hello라는 페이지로 전달하게 되어있다
이 hello는 helloworld-servlet.xml내에 viewResolver 빈에 정의한 설정에 따라 /JSP/hello.jsp가 될것이다.
4. 이제 /JSP/hello.jsp를 작성한다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
|
컨트롤러를 통해 ModelAndView에 담겨진 now객체를 받아 뿌려주게 되어있다
여기서 문제점 하나! 태그라이브러리 선언 부분이 jstl라이브러리 버젼에 따라 달라진다.
jstl 라이브러리 버전 1.0은 uri="http://java.sun.com/jstl/core"
1.1 버전은 uri="http://java.sun.com/jsp/jstl/core" 로 선언.
현재의 경우 1.1 버전이기때문에 uri="http://java.sun.com/jsp/jstl/core" 로 선언하였습니다.
5. 이제 Tomcat을 기동하고 http://127.0.0.1/HelloWorld/hello.htm 으로 접근하면.. 출력이 됩니다.