origoni's Blog from Millky

origoni의 스프링 블로그 입니다.

밀키2 만들기 첫시간 : 프로젝트 생성 및 Hello World보기

일단 따라해보는 밀키 만들기.


자 우선 자바7, 톰켓7, MySQL5.5, 이클립스 3.7.2를 설치합니다.

그리고 스프링 3.1.1, 하이버네이트 4.1.1을 미리 다운받아주세요. Maven은 다음에 쓰기로 하고 우선 쉽게쉽게 해봅시다 ㅋ


이클립스는 Eclipse IDE for Java EE Developers로 설치해 주세요.



준비가 완료되셨나요?

혹시 기본 설치부터 걸리시나요?

지금시간에는 스프링을 이용한 밀키2 생성해서 최소설정으로 진행해보도록 하겠습니다.

추가적인 환경 설정에 대해서는 다음에 다른 글에서 다루도록 하겠습니다.



그럼 시작합니다~


1. 우선 프로젝트를 새로 만들어 봅니다.


우리는 다이나믹 웹 프로젝트를 만들 것 입니다.




밀키는 서블릿3로 만들어지고 있습니다. 그래서 톰켓은 꼭 7 이상을 설치해 주셔야 합니다.

지금은 밀키2 만드는 시간이니까 프로젝트 명은 Millky2





다음 다음하고 마지막에 web.xml을 만들어 달라고 합니다.


사실 서블릿3 부터는 설정파일이 없어도 되지만. 우선은 만들고 설정파일 없이 하는 부분은 나중에 해보도록 하겠습니다.






짜잔 프로젝트를 완성하고 나니 많은 것이 생겼네요~



 

아직 스프링은 시작하지도 않았지만.

우선 만들어진 프로젝트가 동작하는지 확인해 보도록 하겠습니다.

 

 

테스트 할 수 있는 jsp페이지를 만들어 봅니다.

 

 

우리가 처음 컨텐츠 디랙토리를 WebContent로 지정했으니 그 바로 아래 파일이 위치해야 합니다.

 

 

 

새로운 파일을 생성한 후 테스트할 내용을 간단하게 작성해 봅니다.

 

 

그리고 해줘야 할 일이 하나 더 있는데요.

 

 

바로 컨텍스트 루트 설정하는 일 입니다.

 

프로젝트 환경설정(Properties)에서 Context root 를 수정해 보겠습니다.

 

 

기본적으로 프로젝트 명과 동일하게 Millky2라고 적혀있습니다.

그것을 루트(/)로 변경해 줍니다.

 

 

준비가 되었으면 서버를 시작합니다.

 

 

 

아래와 같은 결과가 나온다면 기본 작업은 성공한 것 입니다.

 


 

 

 

 

우선 환경 설정 폴더도 만들어 봅니다~ (나중에 해도 되요 ㅋ)

 



그럼 이제 다운받아둔 스프링 프레임워크를 볼까요?



밀키에는 위에 선택된 것만 사용합니다.


그리고 거기에 commons-logging-1.1.1.jar 을 추가합니다.

나중에 다른걸로 바꿀꺼지만 일단은 간단하게 테스트 해보려고 사용합니다.





스프링 라이브러리는 우선 이렇게 완료되었구요

사실 오늘 사용하는것은 여기 추가한 많은 것 중에 일부분이지만.

나중에 또 추가하는것도 일이라;; ㅋㅋ


 

이제 스프링 프레임워크를 추가 했으니

스프링을 통해 Hello World를 찍어보기로 하겠습니다.



이번에는 환경설정을 좀 볼께요.

처음에 jsp파일을 직접 보여줄때는 특별하게 설정한 것이 없었지만.

스프링 MVC를 사용하기 위해서는 몇가지 설정이 필요합니다.


우선 web.xml파일을 볼께요.

web.xml파일은 자바 웹 서비스의 시작입니다.




<?
xml version="1.0" encoding="UTF-8"?>

<web-app

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns="http://java.sun.com/xml/ns/javaee"

        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

        id="Millky2"

        version="3.0">

 

        <display-name>Millky2</display-name>

 

        <!-- 리퀘스트 요청을 처리합니다. -->

        <servlet>

               <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>

               <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

               <init-param>

                       <param-name>contextConfigLocation</param-name>

                       <param-value>

                              /WEB-INF/config/base/millky2-servlet.xml

                       </param-value>

               </init-param>

               <load-on-startup>1</load-on-startup>

        </servlet>

        <servlet-mapping>

               <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>

               <url-pattern>*.do</url-pattern>

        </servlet-mapping>

 

</web-app>




여기서 서블릿을 정의하는데요.

우리는 스프링에서 제공해주는 DispatcherServlet이라는 것을 사용할 것입니다.


그리고 중간에 보면

환경설정파일 지정한 것이 있는데..

/WEB-INF/config/base/millky2-servlet.xml

요리 되어있네요.

저 파일 만들어 줘야 합니다.


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns:context="http://www.springframework.org/schema/context"

        xsi:schemaLocation="

                       http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

                       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 

        <!-- @Component(@Component, @Repository, @Service, and @Controller) 읽어드립니다. -->

        <context:component-scan base-package="com.millky" />

 

</beans>





그럼 다음으로는 컨트롤러를 만들어볼까요?


우선 패키지를 만들어 봅니다.

com.millky.controller.web






그리고 컨트롤러를 만들어 볼께요~





우선 임시적으로 테스트 컨트롤러라고 만들었습니다.



package com.millky.controller.web;

 

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

 

@Controller

public class TestController

{

        @RequestMapping(value = { "test.do" })

        String Test()

        {

               return "index.jsp" ;

        }

}



간단하게 만들었습니다.


자 잘 동작 할까요?



잘 나오는군요~


지금까지 말한 부분에 대해서는 모델2 방식의 이해가 필요한데요.

다른곳에 좋은 자료가 많기 때문에 그림 한장으로 땜빵하겠습니다 ㅎ










그림에 대한 이해는 하셔야 합니다.





지금까지 만들어진 구조 입니다.







사실 글이 생각했던 것과는 조금 다른 방향이군요.

첫술에 배부르랴 라는 말이 있습니다.

다음에는 더욱 좋은글로 찾아뵙겠습니다.


방금 만든것은 war로 묶어 올릴께요.


Millky.war



그럼 다음시간에 뵙겠습니다.


back to top