1. 실습진행을 위해 Dynamic Web Project 생성
2. 라이브러리 추가
스프링 프레임워크를 다운받으면 모듈에 지원하는 라이브러리 jar파일들이 있음.
스프링 2.5의 spring.jar
spring-aspects.jar, spring-test.jar, spring-webmvc.jar, spring-webmvc-portlet.jar, spring-webmvc-struts.jar을 제외한 나머지 모듈
webmvc 추가.
3. log4j 사용을 위해서 프로퍼티 파일 추가
4. 공통으로 사용하는 util패키지에 클래스 추가
FileManager 클래스
|
스프링에서는 file클래스를 사용하지 않고 inputStream클래스를 사용한다. 파일업로드 작업. 저장된 파일의 경로를 지정해주면 스프링이 알아서 업로드를 시켜준다. FileCopyUtils.copy(is,new FileOutputStream(fullFilePath)); |
CommonDAOImpl 클래스 - applicationContext.xml를 통해 트랜잭션 객체를 생성하므로 삭제함.
|
package com.util.dao; import java.sql.SQLException; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.ibatis.SqlMapClientTemplate; import org.springframework.stereotype.Repository; @Repository("dao") public class CommonDAOImpl implements CommonDAO {
//자동으로 applicationContext.xml에 있는 bean중 id가 동일한 객체를 가져오라는 어노테이션 //Autowired가 작성되었기 때문에 setter를 생략할 수 있다. @Autowired private SqlMapClientTemplate sqlMapClientTemplate;
@Override public void insertData(String id, Object value) throws SQLException { try { sqlMapClientTemplate.insert(id, value); } catch (Exception e) { System.out.println(e.toString()); } finally { } } @Override public int updateData(String id, Object value) throws SQLException { int result = 0; try { //트랜잭션매니저 bean에서 트랜잭션을 생성하고 끝내므로 작성할 필요없음 result = sqlMapClientTemplate.update(id, value); } catch (Exception e) { System.out.println(e.toString()); } return result; } @Override public int updateData(String id, Map<String, Object> map) throws SQLException { int result = 0; try { result = sqlMapClientTemplate.update(id, map); } catch (Exception e) { System.out.println(e.toString()); } return result; } @Override public int deleteData(String id) throws SQLException { int result = 0; try { result = sqlMapClientTemplate.delete(id); } catch (Exception e) { System.out.println(e.toString()); } return result; } @Override public int deleteData(String id, Object value) throws SQLException { int result = 0; try { result = sqlMapClientTemplate.delete(id, value); } catch (Exception e) { System.out.println(e.toString()); } return result; } @Override public int deleteData(String id, Map<String, Object> map) throws SQLException { int result = 0; try { result = sqlMapClientTemplate.delete(id, map); } catch (Exception e) { System.out.println(e.toString()); } return result; } @Override public Object getReadData(String id) { return sqlMapClientTemplate.queryForObject(id); } @Override public Object getReadData(String id, Object value) { return sqlMapClientTemplate.queryForObject(id,value); } @Override public Object getReadData(String id, Map<String, Object> map) { return sqlMapClientTemplate.queryForObject(id,map); } @Override public int getIntValue(String id) { int num = 0; num = ((Integer)sqlMapClientTemplate.queryForObject(id)).intValue(); return num; } @Override public int getIntValue(String id, Object value) { int num = 0; num = ((Integer)sqlMapClientTemplate.queryForObject(id,value)).intValue(); return num; } @Override public int getIntValue(String id, Map<String, Object> map) { int num = 0; num = ((Integer)sqlMapClientTemplate.queryForObject(id,map)).intValue(); return num; } @SuppressWarnings("unchecked") @Override public List<Object> getListData(String id) { List<Object> lists = (List<Object>)sqlMapClientTemplate.queryForList(id); return lists; } @SuppressWarnings("unchecked") @Override public List<Object> getListData(String id, Object value) { List<Object> lists = (List<Object>)sqlMapClientTemplate.queryForList(id,value); return lists; } @SuppressWarnings("unchecked") @Override public List<Object> getListData(String id, Map<String, Object> map) { List<Object> lists = (List<Object>)sqlMapClientTemplate.queryForList(id,map); return lists; } } |
5. sqlMapconfig 폴더 생성 - (iBatis)

sqlMapConfig.xml
|
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings cacheModelsEnabled="false" useStatementNamespaces="true"/>
<sqlMap resource="com/util/sqlMap/temp_sqlMap.xml"/> </sqlMapConfig> |
6. applicationContext.xml, dispatcher-servlet.xml, web.xml 파일 생성

① applicationContext.xml - iBatis 셋팅
|
<?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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd"> <!-- 스프링에 의해 iBatis 사용할 것이므로 설정. DB를 찾아가는 기본적인 경로 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.16.16:1521:TestDB"/> <property name="username" value="SUZI"/> <property name="password" value="A123"/> </bean> <!-- 트랜잭션 처리를 진행하는 객체 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- iBatis 사용을 위해 팩토리빈을 만들어야함 --> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" p:dataSource-ref="dataSource" p:configLocation="WEB-INF/sqlMapConfig/sqlMapConfig.xml"/> <!-- sqlMapClient를 통해 만드는 개별로 적용되는 템플릿 --> <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate" p:sqlMapClient-ref="sqlMapClient"/> </beans> |
② dispatcher-servlet.xml - Spring 셋팅
Struts에서 action-Context.xml 환경설정 파일의 역할을 front controller가 진행한다.
<!-- View로 넘겨야되는 jsp페이지를 찾는 역할을 하는 객체 → 뷰리졸버 : 사용자에게 결과를 랜더링하여 보여주기 위하여 사용 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean>
|
<?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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd"> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> </beans> |
③ 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>spring</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 모든 주소는 인코딩 필터를 거치도록 설정 --> <filter> <filter-name>CharacterEncoding</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>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <!-- 스프링의 기본확장자도 action임 --> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app> |
프로젝트가 잘 실행되는지 확인하기 위해 index.jsp를 생성해보자
|
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% request.setCharacterEncoding("UTF-8"); String cp = request.getContextPath(); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>Spring2.5 Framework</h1> </body> </html> |
실행 화면

이상없이 스프링 2.5 프레임워크를 세팅하였다 !
'Dev > Spring' 카테고리의 다른 글
| Spring2.5 MVC - Exception & SimpleFormController (0) | 2019.04.05 |
|---|---|
| Spring2.5 MVC - SimpleUrlHandlerMapping (0) | 2019.04.05 |
| Spring2.5 MVC - AbstractController & BeanNameUrlHandlerMapping & 핸들러와 컨트롤러의 종류 (0) | 2019.04.05 |
| Spring2.5 - 제어의역전,의존성주입 예제 (0) | 2019.03.28 |
| Spring2.5 - 개요 & 구성요소 & MVC패턴 (0) | 2019.03.28 |