Spring에서 Maven을 사용하는 2가지의 방법이있다.
이 방법을 임의로 방법1, 방법2라고 하고 이 방법1,2를
예제를 통해 정리하고자 한다.
참고
Maven Project로 구성된 예제->war로 묶으면 안된다.(X)->import할때 maven 설정이 사라진다.
=>복사해서 가져가면 된다.
Maven을 만드는 방법1
간단한 방법으로 이 방법이 가장 좋고 편하다.
예전에 만든 SpringMVC를 복사해서 SpringMVC3를 만들어서 적용해보려고 한다.
다 만든 프로젝트에 적용할수있고 프로젝트 생성하자마자 바로 적용해도된다
1. 다 작성된 프로젝트 오른쪽click ->configure->convert to maven project를 선택하여 적용시킨다
프로젝트 생성하자마자 바로 적용해도 된다.
~생략~
<packaging>war</packaging>
<!-- 이쪽 package와 밑에 build사이에 추가 -->
<repositories>
<repository>
<id>oracle</id>
<name>ORACLE JDBC Repository</name>
<url>http://maven.jahia.org/maven2</url>
</repository>
</repositories>
<dependencies>
<!-- Spring and Transactions -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<!-- Spring JDBC, mysql드라이버 다운
Oracle jdbc6.jar 불러오기
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1</version>
</dependency>
<!--Spring MVC jar파일,JNDI -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- mybatis에 대한 2개의 파일다운로드 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
<!-- -->
<build>
3. lib폴더에 기존에 존재하는 스프링 라이브러리파일은 삭제시킨후 =>실행
참고로 war로 압축X
=>압축은 되는데 불러올때 pom.xml이 없어진다.
메이븐 만드는 방법2
이 방법은 복잡하고 불편하고 어렵다 따라서 안쓰는걸 추천한다.
예제를 순서대로 진행하면서 정리해볼려한다.
1. 새프로젝트 만들기
2. src->main에 java폴더를 만들어준다
3. web.xml내용(옛날설정) 수정한다 => 새로운버전으로 붙여넣는다
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>SpringMVC</display-name>
<!--
1. 요청을 받아서 처리해주는 컨트롤러 역할 클래스를 등록(환경설정 파일 생성)
서블릿 별칭명(test)-servlet.xml
-->
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
4. test-servlet.xml 복사해와서 WEB-INF에 넣어준다
5. pom.xml의 dependency부분 수정 및 추가
~생략~
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
6. jsp를 돌리기위해 pom.xml에 내용을 추가해준다
~생략~
<!-- servlet-api.jar -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
7. web.xml에 한글처리해주기 위한 설정 추가
~생략~
<!-- 라이브러리 -->
<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>
8. test-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-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- @Autowired,~ 할때 필요로 하는 자비빈즈를 자동으로 등록시켜주는 옵션 -->
<context:annotation-config />
<!-- 4.viewResolver(위치(prefix),이동할 페이지의 확장자(suffix)지정) -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- 요청명령어에 따른 컨트롤러 클래스를 작성(모델2의 액션클래스) -->
<bean class="kim.TestActionController" />
</beans>
package kim;
import java.util.Calendar;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class TestActionController {
/*
@RequestMapping("/hello.do") //hello.do라는 요청이 들어오면
public String hello() {
return "home";// /home.jsp로 전환
}
이동하면서 데이터도 전달하고싶다면? ->ModelAndView
메서드내부에서 다른 컨트롤러이용 ->redirect:/요청명령어 이용
return "redirect:/요청명령어/";
*/
@RequestMapping("/hello.do")
public ModelAndView hello() {
System.out.println("hello()호출됨");
ModelAndView mav=new ModelAndView();
mav.setViewName("hello");
mav.addObject("greeting",getGreeting());//${greeting}
return mav;
}
private String getGreeting() {
int hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);//시간대
System.out.println("hour=>"+hour);
if(hour>=6 && hour<=10) {
return "좋은 아침입니다.";
}else if(hour>12 && hour<=15) {
return "점심식사";
}else if(hour>18 && hour<=22) {
return "저녁시간때";
}
return "안녕하세요~";
}
}
10. index.jsp 수정
<%
response.sendRedirect(request.getContextPath()+"/hello.do");
System.out.println("request.getContextPath()=>"+request.getContextPath());
%>
11. hello.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>응답해서 보여주는 페이지</title>
</head>
<body>
<h1>${greeting}</h1>
</body>
</html>
~생략~
<!-- jsp 추가라이브러리 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
index.jsp에서 실행
정리한것을 보면 알겠지만 방법1은 아주 간단하고 편하지만 방법2는 복잡하고 어렵다
따라서 어지간하면 방법1을 사용하도록 하자
2022-08-31