eclipse와 tomcat을 설치한 후 spring을 maven을 이용하여 추가하고 간단한 MVC 모델을 만들어 보겠습니다. eclipse Version: 2019-03 (4.11.0).
1. Eclipse Apache-Tomcat 설치
기본 eclipse와 tomcat설치는 다음을 참고 하세요.
eclipse java apache-tomcat 설치 (Windows)
2. maven 프로젝트 생성
최근에는 maven이 eclipse에 포함되어 있는데 특별히 사용해야 하는 maven 버전이 있거나 최신 버전을 설치하여 사용하려면 다음을 참고 하세요.
maven project를 생성하기 위해 상단 메뉴에서
File > New > Maven Project
를 선택 하거나
또는
File > New > Others
에서 선택을 합니다.
Next 버튼을 클릭 합니다.
프로젝트 생성 위치는 workspace이고 수정이 필요 없으면 Next 버튼을 클릭 합니다.
maven-archetype-webapp을 선택하고 Next 버튼을 클릭 합니다.
“Group Id”는 기본적으로 "com.test.maventest" 로 되어 있는데 수정을 해도 됩니다. “Artifact Id” 는 적당한이름을 입력 합니댜. 여기서는 "mavenexample"로 하였습니다. “Package” 는 입력 값에 의해 " com.test.maventest.mavenexample" 으로 자동생성 됩니다.
입력이 완료 되면 Finish 버튼을 클릭 하면 프로젝트가 생성되고 생성된 프로젝트의 구조와 파일은 다음과 같습니다.
3. 코딩
이제 MVC 모델로 코딩을 해보겠습니다.
3.1 pom.xml 편집
pom.xml을 이용하여 spring framework를 추가 합니다.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test.maventest</groupId> <artifactId>mavenexample</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>mavenexample Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- 신규 추가 작업 시작 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- 신규 추가 작업 종료 --> </dependencies> <build> <finalName>mavenexample</finalName> </build>
<properties> <spring.version>4.0.2.RELEASE</spring.version> </properties>
</project> |
3.2 Controller 생성
HelloWorldController.java
Class를 생성하려면 pom.xm에 설정한 것과 같이 package를 만들고 진행 해야 합니다. <groupId>com.test.maventest</groupId> 형태로 package를 새로 생성합니다.
com.test.maventest 밑으로 controller, service, vo, dao, common등의 폴더를 생성해서 사용하면 됩니다. 여기서는 controller만 생성합니다. DB 이용까지 설명하면 너무 길어져서 다음기회에...
controller 폴더를 생성 합니다. 상단 메뉴에서
File > new > Folder
를 선택 하고
maventest 하부에 controller를 입력하고 Finish 버튼을 클릭하여 controller 폴더가 생성 되었습니다. 이제 contoller 폴더에 class 파일을 하나 추가 합니다.
New 에서 class를 선택 하고 Next 버튼을 클릭 합니다.
파일 명을 HelloWorldController로 하여 생성하면 클래스만 있는데 코딩을 합니다.
package com.test.maventest.controller;
@Controller @RequestMapping("/helloWorld") public class HelloWorldController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public String hello(ModelMap model) { model.addAttribute("msg", "Hello World!"); // 데이터 return "helloWorld"; // 리턴되는 jsp 파일명 }
@RequestMapping(value = "/displayMessage/{msg}", method = RequestMethod.GET) public String displayMessage(@PathVariable String msg, ModelMap model) { model.addAttribute("msg", msg); // 데이터 return "helloWorld"; // 리턴 파일명 }
} |
/helloWorld/hello : 내부에서 생성한 메시지 전달
/displayMessage/{메시지} : 외부에서 받은 메시지를 그대로 전달(또는 가공도 할 수 있겠죠?)
.
3.3. View 생성
/WEB-INF/ 폴더에 Controller에서 리턴 하는 값을 받을 화면을 helloWorld.jsp로 선언 했으므로 추가를 해 봅니다. WEB-INF에 마우스 대고 우측 클릭해서 JSP 추가를 합니다.
생성된 파일에 코딩을 추가 합니다.
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <h1>Spring 4.0.2 MVC web service Test</h1>
<h3>Return Message : ${msg}</h3>
</body> </html> |
controller 파일 addAttribute()에서 msg를 넘겨주므로 받아서 보여 주는 jsp 입니다.
코딩도 끝입니다.
4. Configure
위에서 작성한 코드를 Spring MVC로 설정해 보겠습니다. 전에 설명한 Plug-in 방식으로 Spring을 추가하면 기본적으로 설정이 되어 있습다.
4.1 web.xml
파일 위치는
/mavenexample/src/main/webapp/WEB-INF/web.xml
servlet 파일의 위치와 파일명을 정의 합니다.
*-servlet.xml을 사용하기 위하여 dispatcher를 추가 합니다.
<web-app> <display-name>Archetype Created Web Application</display-name>
<servlet> <servlet-name>data-dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>data-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
</web-app> |
servlet-name을 data-dispatcher라고 했으니 파일명은 data-dispatcher-servlet.xml가 되고 위치는 ‘/’로 했으니 web.xml과 동일한 위치로 /mavenexample/src/main/webapp/WEB-INF/ 여기에 생성합니다.
4.2 data-dispatcher-servlet.xml
data-dispatcher-servlet.xml 파일을 신규 생성 합니다. 주의할 점은 생성된 package명으로 기입해야 하는데 Spring에서 annotation을 사용하기 위해 component-scan을 등록하는 것으로 base-package를 입력 하면 그 하위 소스 코드를 Spring container가 실행 될 떄 정보를 읽어 옵니다.
<context:component-scan base-package="com.test.maventest" />
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com.test.maventest" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans> |
파일을 생성한 위치는 아래와 같습니다.
5. application 실행
5.1 Maven Update
pom.xml 파일을 수정했으니 반영을 위해 프로젝트에 마우스를 대고 우측 클릭
Maven > Update Project
을 선택하고
update 할 프로젝트를 선택 합니다. 여기서는 하나만 생성 했으므로 하나만 나옵니다.
update 하려는 프로젝트를 선택 하고 OK 버튼을 클릭 합니다.
5.2 Maven Build
maven build를 진행 합니다.
프로젝트에 마우스 우측 클릭 > Run As > Maven build
그러면 build의 목표를 입력하는 창이 나타납니다.
Goal에는 compile, test, deploy등이 있고 여기서는 package를 입력 하고 Run 버튼을 클릭 해서 war 파일을 생성 하려고 합니다.
빌드에 성공 했습니다.
5.3 Was 실행
이제 프로젝트를 WAS에서 기동해 보겠습니다.
프로젝트에 마우스 우측 클릭 > Run As -> Run On Server
잠시 후 브라우저에 Hello World!가 나타 나는데
이건 index.jsp 파일이고 우리가 생성한 MVC를 테스트 해 봅니다.
http://localhost:8080/mavenexample/helloWorld/hello 를 입력 합니다.
입력한 데이터를 리턴 받는 테스트 입니다.
http://localhost:8080/mavenexample/helloWorld/displayMessage/Maven Test 오래 걸리네
보낸 문자를 다시 받는 것도 잘 되는 군요.
'Java' 카테고리의 다른 글
axboot framework 설치 (2) | 2019.05.29 |
---|---|
Spring Tools 설치 Spring Boot (STS 4.4.2.1) (4) | 2019.05.28 |
maven 설치 및 eclipse 연동 (17) | 2019.04.30 |
Eclipse Apache spring (plug-in) 설치 (0) | 2019.04.15 |
eclipse java apache-tomcat 설치 (Windows) (2) | 2019.04.13 |