Spring
[SPRING] Eclipse Spring Setting
Hwan'ss
2019. 9. 17. 11:04
Eclipse Spring Setting
Step 1. 프로젝트 생성
- [File] - [New] - [Other...] - [Maven project] - [Use default Workspace location만 check] - [maven-archetype-webapp 1.0 버전 선택] - [Group Id, Artifact Id 설정]
- Group Id와 Artifact Id 이름은 동일해도 됨
Step 2.
- 프로젝트 명 클릭 후 Alt + enter을 눌러 환경설정 창을 띄운다.
- Project Facets 항목 - Dynamic Web Module 2.3->3.0, java 1.5->1.8 로 변경해주어야 하는데 여기서 변경하고 Applt 한다고 변경되지 않는다. 밑에서 설정하는 방법을 설명한다. (여기서 변경하지 않는다.)
- Runtimes tab에서 Apache Tomcat v9.0 이 선택 -> Apply
Step 2-1. Dynamic Web Module 2.3->3.0, java 1.5->1.8 변경
- 윈도우에서 위에서 생성한 프로젝트 경로를 찾아서 .settings 디렉토리에 들어가 2개의 파일 편집
- 아래의 두 파일을 다음과 같이 편집한다.
- org.eclipse.jdt.core.prefs 파일을 열면 자바 버전 1.5 부분들을 모두 1.8로 편집한다.
- org.eclipse.wst.common.project.facet.core.xml : "jst.web" version 2.3->3.0, "java" version 1.5->1.8 로 변경
- 프로젝트 명 클릭 후 Alt + enter 실행 해 환경설정 창 - Project Facets에 들어가 버전이 변경되었는지 확인
- [pom.xml] - [Dependencies] - [Add...] 에서 라이브러리를 추가 할 수 있지만 이 방법은 거의 사용하지 않는다.
- 나는 위의 방법이 아니라 단순히 copy해서 가져올 것이다.
- <코드에서 dependencied> 부터 </build> 까지 제거하고 아래의 파일을 소스코드를 붙여 넣을 것이다.
- 위의 블록 잡은 코드 부분을 제거하고 아래의 소스코드를 붙여 넣으면 된다.
<properties>
<spring.version>4.0.1.RELEASE</spring.version>
</properties>
<repositories>
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
* 주의
- pom.xml이 조금이라도 수정이 된다면 Alt+F5를 눌러 -> Force Update of... 체크하고 -> ok 해준다.
* 알아두기
환경설정 시 문제가 발생하면 아래의 디렉토리를 찾아서 싹 지우고 다시 다운을 받는다.
* 아래의 사이트에서 디렉토리 구조를 볼 수 있다.
http://repo.maven.apache.org/ : root 디렉토리
groupId : <groupId>org.springframework</groupId> 이 그룹에
artifactId : <artifactId>spring-webmvc</artifactId> 해당 디렉토리가 있다.
Step 3. web.xml 수정
- [프로젝트] - [src] - [main] - [webapp] - [WEB-INF] - [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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--한글 설정-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
* 위 코드에서 한 가지 주의 사항
18번 라인 : <servlet-name>dispatcher</servlet-name> => dispatcher만 유일하게 수정이 가능하다.
Step 4. dispatcher-servlet.xml 파일 생성
- [프로젝트명] - [src] - [main] - [webapp] - [WEB-INF] - 마우스 우클릭 - [New] - [File] - dispatcher-servlet.xml 명으로 생성
- 생성한 dispatcher-servlet.xml 파일안에 아래 코드를 붙여넣는다.
<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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="pack01" />
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<mvc:view-resolvers>
<mvc:jsp prefix="/WEB-INF/views/"/>
</mvc:view-resolvers>
</beans>
*여기서 봐야 할 코드는 두 곳
15번째 줄 : <context:component-scan base-package="pack01" />
- java 파일의 위치, java 파일은 여기에 있으니 뒤져서 사용해라.
21번째 줄 : <mvc:jsp prefix="/WEB-INF/views/"/>
- 앞으로 보여주는 view(html, jsp) 파일은 여기안에 있으니 뒤져서 사용해라.
Step 5.
- [프로젝트명] - [src] - [main] - [webapp] - [index.jsp] 에서 모든 코드를 지우로 아래의 코드를 붙여넣는다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*, java.text.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<head>
<title>메인 페이지</title>
</head>
<body>
<%=new Date()%>
<h2>Hello World</h2>
<a href="t1">링크</a>
</body>
Step 6.
- [프로젝트명] - [src] - [main] - java 폴더 생성
- [java 폴더] - [New] - class 생성 - package 이름은 위에서 설정한 'pack01'로 설정 -> Name 입력 후 Finish
- java 파일을 생성했다면 그 파일에 아래 코드를 붙여 넣는다.
package pack01;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class Tiger {
@RequestMapping("/t1")
public String func() {
System.out.printf( "함수 콜\n" );
return null;
}
}
*
- 위까지 setting을 완료하면 404에러 발생
- 컨트롤러가 실행은 되었지만 연결이 되지 않았다.
- 아래에서 컨트롤러를 연결한다.
- [프로젝트명] - [src] - [main] - [webapp] - [WEB-INF] - views 폴더 생성
- [views 폴더] - jsp 파일생성
- index.jsp 에 링크 추가
- Tiger.java 에 @RequestMapping 어노테이션 함수 추가 -> retrun "tigerView"를 통해 갈 곳 지정(컨트롤러 연결 완료)
Step 7. 실행
- 실행 시 열리는 메인페이지
- 링크1 클릭
- 컨트롤러 연결이 null 이기 때문에 404 error가 발생한다.
- 링크2 클릭
- 실행 결과 문제가 없기 때문에 setting이 정상적으로 완료가 되었다.
- 앞으로는 이 setting을 프로젝트 마다 하는 것이 아니라 setting 되어 있는 프로젝트를 복사해서 사용하면 된다.
** 프로젝트 복사 하기 **
1. pom.xml -> Spring01을 Spring02로 변경
2. refrash 해준다.
3. a/t + f5 -> Force Update of.... 체크 -> ok
4. tomcat servers delete -> tomcat server 다시 생성
5. pom.xml -> 편집 * 생기도록 한다 -> web.xml -> 편집 * 생기도록 한다 -> all save -> update
6. 프로젝트명 -> properties -> Path : /Spring02로 걸려 있어야 한다.
7. 실행 시 url에 spring02가 있으면 성공적을 복사를 완료 했다.
위의 7가지만 실행 하면 쉽게 복사를 할 수 있다.
2019.09.08(수)
Eclipse Spring Setting