스프링 3.0 + ibatise

2012. 7. 3. 13:35

 

FOCUS : 
Eclipse + Maven + Spring Framework  개발환경 설정.

Reference :
1. http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. http://www.eclipse.org/downloads
3. http://openness.tistory.com/107
4. http://tomcat.apache.org/download-70.cgi
5. http://blog.daum.net/istae0430/279
6. http://archive.apache.org/dist/tomcat/tomcat-connectors/native/
7. http://blog.doortts.com/59 
8. http://alexk.springnote.com/pages/3501753#toc_2
9. http://maven.apache.org/download.html
10. http://eclipse.org/m2e/
11. http://eclipse.org/m2e/download
12. http://stackoverflow.com/questions/2921473/m2eclipse-eclipse-is-running-in-a-jre-but-a-jdk-is-required
13. pom reference ( http://maven.apache.org/pom.html)
14. http://kongkk.springnote.com/pages/8115902
15. http://sepiroth11.tistory.com/entry/SetPropertiesRuleServerServiceEngineHostContext-Setting-property-source-to-orgeclipsejstjeeserver%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%AA%85-did-not-find-a-matching-property
16. http://entireboy.egloos.com/4534698

Need to known :
The APR based Apache Tomcat Native library 

Maven http://maven.apache.org/  
    1) How do i build my project http://www.avajava.com/tutorials/lessons/how-do-i-build-my-project.html

    2) build lifecycle phase :http://cvs.peopleware.be/training/maven/maven2/buildLifecyclePhases.html#site

Spring Framework http://www.springsource.org/  , 
    1)  Spring Framework module 설명  : http://blog.naver.com/gigar/60121489281 





spring Framework 개발환경 설정에 대해 정리해 본다.
개발 환경 설정 하는데, 왜 이리 걸리는게 많은지, 환경 설정 하다가 포기하겠당 ㅋㅋ
그래서 다시 한번 정리!!



- 개발환경은 아래와 같은 순서로 설정  (for windows 7)
1. java 설치
2. eclipse 설치.
3. tomcat 설치 + eclipse wts 설정
4. maven 설치 + eclipse m2eclipse 설치
5. spring Framework 설정



1. java 설치 
아래의 URL 에서 JDK 7  download
http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK7 설치 후, 윈도우 환경변수에 JAVA_HOME 설정
JAVA_HOME --> C:\Dev\Java\jdk1.7.0


2. Eclipse(Indigo SR1) 설치 
아래의 URL 에서 Eclipse IDE for Java EE Developers download 
http://www.eclipse.org/downloads/

받은파일 (eclipse-jee-indigo-SR1-win32.zip)의 압축해제로 eclipse 설치 


3. tomcat 설치 + eclipse wts 설정 ( 참고 : http://openness.tistory.com/107)
아래의 URL에서 tomcat 7.0 download
http://tomcat.apache.org/download-70.cgi

받은파일 압축해제로 tomcat 설치 
tomcat 설치 후, 윈도우 환경변수에 CATALINA_HOME 설정
CATALINA_HOME -->D:\tomcat

Eclipse 에서 New > Other > Server > Apache Tomcat v7.0 Server 선택 
 tomcat installation directory -> d:\tomcat 설정
 jre -> jre7 (C:\Dev\Java\jdk1.7.0) 설정

위와 같이 설정하면 
하단의 Servers tab 에 Tomcat v7.0 Server at localhost [Stopped, Republish] 라고 나온다.

Tomcat v7.0 Server at localhost Start 후, 웹브라우저에 http://localhost:8080 로 실행 했을때 아래와 같이 나오면 정상



tomcat 설치중 문제발생 : (참고 : http://blog.daum.net/istae0430/279)
위와 같이 tomcat 실행이 되는 건 확인 했는데 eclipse console log를 보니 아래와 같은 log가 있다. ㅜㅜ

[log]
정보: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Dev\Java\jdk1.7.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;...
2월 10, 2012 3:44:47 오후 org.apache.coyote.AbstractProtocolHandler init


근데 ARP 라는 넘이 머 하는 넘인지는 모르겠는데 검색 해 보니 
http://archive.apache.org/dist/tomcat/tomcat-connectors/native/
가서  tcnative-1.dll(windows 의 경우) 을 받아 java.library.path 넣으란다. 

그래서 v 1.1.17 을 받아 C:\Dev\Java\jdk1.7.0\bin 에 넣었더니 아래의 붉은색과 같이 log가 뜬다. 닝길 ..

[log]
2월 10, 2012 3:46:36 오후 org.apache.catalina.core.AprLifecycleListener init
정보: An older version 1.1.17 of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of 1.1.20
2월 10, 2012 3:46:36 오후 org.apache.catalina.core.AprLifecycleListener init
정보: Loaded APR based Apache Tomcat Native library 1.1.17.
2월 10, 2012 3:46:36 오후 org.apache.catalina.core.AprLifecycleListener init
정보: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].


 다시 v1.1.20 을 받아  C:\Dev\Java\jdk1.7.0\bin 에 넣고 Server를 실행 시켜보니 아래와 같이 버전 맞지 않는 문제가 해결 되었다.   아직 ARP 가 머 하는데 쓰는 넘인지 잘 모르겠는데, 이넘이 없어도 문제없이 실행되는 거 같다. 
이 ARP라는 넘이 먼지 나중에 찾아봐야지.

[log]
2월 10, 2012 3:50:34 오후 org.apache.catalina.core.AprLifecycleListener init
정보: Loaded APR based Apache Tomcat Native library 1.1.20.
2월 10, 2012 3:50:34 오후 org.apache.catalina.core.AprLifecycleListener init
정보: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].



4. maven 설치 + eclipse m2eclipse 설치
 ( 참고 : http://blog.doortts.com/59 , http://alexk.springnote.com/pages/3501753#toc_2)

4.1 Maven 설치 : 아래의 URL에서 Maven download
http://maven.apache.org/download.html

받은파일 압축해제로 maven 설치 
maven 설치 후, 윈도우 환경변수에 M2_HOME 설정
M2_HOME -->C:\Dev\apache-maven-3.0.4

cmd 창에서 mvn -version 을 타이핑 해보면 아래와 같이 결과가 나온다. 

 




4.2 m2eclipse 설치  ( 참고 : http://eclipse.org/m2e/http://eclipse.org/m2e/download/)
eclipse > help > install new software 에 http://download.eclipse.org/technology/m2e/releases 
를 입력하면 m2e plugin을 다운 받을 수 있다. 

다운로드가 완료되면 아래와 같은 윈도우가 뜬다. 


Restart Now 실행 

eclipse > window > preferences  > Maven > Installations에 보면 Embedded 되어 있는 Maven 버전이 3.0.2로 
apache 에서 다운로드 받은 버전보다 더 낮아 add 해 주었다. 



m2eclipse 문제 발생시 참고 
(http://stackoverflow.com/questions/2921473/m2eclipse-eclipse-is-running-in-a-jre-but-a-jdk-is-required)

maven build 실행시 compile 문제 발생하면 참고 
http://maven.40175.n5.nabble.com/Unable-to-locate-the-Javac-Compiler-Problem-td133804.html

5. spring Framework 설정
Maven을 깔았으니 eclipse maven project로 spring Framework을 설정 해 보려한다.

5.1 project 생성
 1)eclipse > new > project > maven > maven project 선택 
 2) create a simple project (skip archetype seletion) check 
Next
 1) Group Id -> com.test2
 2) artifact id -> springTest2
 3) Packaging -> war 
Finish 

아래와 같은 모양으로 project 생성 




pom reference ( http://maven.apache.org/pom.html)
spring framework 사용을 위해 첨부 파일과  같이 pom.xml을 만든다.
pom.xml 중 spring 과 ibatis 이외의 부분은 없어도 될거 같다.

삽질 원인
 - Oracle JDBC Driver는 라이센스 문제로 인해서 Maven Central 저장소에서 로컬 저장소로 jar 파일을 정상적으로 다운로드 받지 못한다!!! (오라클이 갑자기 싫어질라고 한다.)

해결방법
 
- 방법1 : pom.xml 파일에 http://mesir.googlecode.com/svn/trunk/mavenrepo 메이븐 저장소를 추가해서 사용하는 방법
<dependencies>
        <dependency>
       <groupId>com.oracle</groupId>
     <artifactId>ojdbc14</artifactId>
     <version>10.2.0.4.0</version>
        </dependency>
<dependencies> 

 <repositories>
<repository>
<id>mesir-repo</id>
<url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>
</repository>
</repositories> 
*** 주의 사항 :  mesir-repo  저장소를 추가하지 않고 ojdbc 의존성만 추가한 후 빌드를 수행하게 되면... 로절 저장소가 더럽혀 지는 경우가 발생하는 것 같다.(아님말구!) 그런 경우 로컬 저장소에서 해당 내용을 삭제한 후 다시 시도를 해야 한다.

- 방법2 : 
직접 ojdbc?.jar 파일을 다운로드 받아서 mvn 명령어로 로컬 저장소에 추가하는 방법
  1. 
 ojdbc14.jar 파일을 다운로드 받은 후 mvn 명령을 이용하여 로컬 저장소에 ojdbc14.jar 를 추가한다. 
mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.0 -Dpackaging=jar -DgeneratePom=true  

  2. pom.xml 파일에 의존성 추가
<dependencies>
        <dependency>
       <groupId>com.oracle</groupId>
     <artifactId>ojdbc14</artifactId>
     <version>10.0</version>
        </dependency>
<dependencies> 
 

Oracle JDBC Driver 덕분에 maven에 대해서 좀더 알게 된것 같다. 하지만 너무 많은 시간을 삽질하는데 시간을 허비해버렸다.
Maven을  사용하면 기존의 개발환경 보다는 편리한 점이 있지만... 아직 이클립스의 maven 플러그인이 완별하지 않은 것 같고 또 maven 자체도 좀더 스마트해질 필요가 있을 것 같다. JDK 에도 node.js의 NPM과 같은 툴이 포함되었으면 하는 바램이다.











pom.xml 을 첨부된 pom.xml 과 같이 설정 후, 아래와 같은 오류가 발생했다.


 Project configuration is not up-to-date with pom.xml. Run project configuration update 라는 메세지가 있어   Project > properties > Maven > Update Project Configuration... 실행 
--> 오류 가 제거 되었다. 

그리고 아래 그림과 같이 Maven Dependencies 에 library가 추가 되었다..
예전엔 jar를 하나씩 다 복사해서 넣고 썼었는데 , library 관리가 참 편리해 졌다. ㅋㅋ



2) maven project를 tomcat 에 add
으미 생성한 Maven 프로젝트를 tomcat 에 add 하려고 Servers > add and remove 메뉴를 선택하면 add 할 resource가 없단다.. 그럼 내가 만들어 놓은 maven project는 tomcat에 add 할수 없다? 
그래서 한참을 헤멨다..그런데 ㅋㅋ ( 참고 : http://kongkk.springnote.com/pages/8115902
참고에 보면 project Facets를 찾아서 Dynamic Web Module 를 선택하면 된다다. 

Project > properties > Project Facets > Convert to faceted form > Dynamic Web Module (check)
그리고 바로 아래에 i Further configuration available.. 에서 src/main/webapp 로 Web contents 경로를 지정했다.
그러면 아래 그림과 같이 src/main/webapp/WEB-INF가 생성되고, tomcat에 publish 가능한 project가 된다.


tomcat에 project를 추가하고 tomcat을 실행시켜보니 
에고고 산넘어 산이구나 아래의 문제가 발생한다. 이건 또 머꼬?

경고: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:springTest2' did not find a matching property.
그래서 또 검색을 해 보니..다들 격고 있구나 ㅋㅋ 
(참고 : http://sepiroth11.tistory.com/entry/SetPropertiesRuleServerServiceEngineHostContext-Setting-property-source-to-orgeclipsejstjeeserver%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%AA%85-did-not-find-a-matching-property)

Servers tab > Tomcat v7.0 더블클릭 > Overview 하단에 Server options 에서 
Publish module contexts to separate XML files 에 check 하란다. 

그리고 다시 tomcat 실행하니, 아래와 같은 경고가 또 떴다.  
경고: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:springTest2' did not find a matching property.

검색중 어딘가에서 살짝 본 기억이 난다. 
springTest2 바로 위의 Servers에서 server.xml 을 열어보면 하단에 
<Context docBase="springTest2" path="/springTest2" reloadable="true" source="org.eclipse.jst.jee.server:springTest2"/>
부분이 있는데 source="org.eclipse.jst.jee.server:springTest2" 형식을 tomcat이 지원하지 않아서 그런다고 한다.
더 진행해 보고, spring Framework이 동작하지 않으면 다시 이유를 찾아봐야겠다. 


3) web.xml , dispatcher-servlet.xml , controller , jsp 


 web.xml , dispatcher-servlet.xml , controller, jsp 모두 만들고 tomcat을 실행하니 또 아래와 같이 오류 발생

심각: Exception starting filter encodingFilter
java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
 at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
 at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
 at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
 at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
 at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
 at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
 at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4562)
 at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5240)
 at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5235)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
 at java.util.concurrent.FutureTask.run(FutureTask.java:166)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
 at java.lang.Thread.run(Thread.java:722)

검색해 보니 결국은 spring Framework library가 WEB-INF/lib에 없어서 발생한 문제다.
(참고 : http://entireboy.egloos.com/4534698)
eclipse 설정을 통해 해결 가능한데 다음과 같이 하면 된다.

Project > properties > Deployment Assembly > add button > java Build Path Entries  선택 그리고 Next
Maven dependencies 선택 하면 아래 그림과 같이 설정된다.
Maven Dependencis -> WEB-INF/lib가 새로 생성 된것 




설정을 마치고 tomcat을 다시 실행 시켰더니 아래와 같이 log msg가 뜨지만 "INFO" Level 이라 그냥 지나갔다.

정보: validateJarFile(D:\Dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\springTest2\WEB-INF\lib\geronimo-servlet_2.5_spec-1.2.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class


브라우저 실행후 http://localhost:8080/springTest2/test1.do  실행 시켰더니 원하는 페이지가 떴다.
휴우~
중간 중간의 고비를 잘 넘기고 spring framework으로 만들어진 간단한 페이지가 떴다.



아직 잘못 설정되어 있는 부분이 있을 수 있지만 , spring Framework을 하나씩 더 알아가면서 바꾸면 될것 같다.
간단하게 Hello 하나 찍는 건데 꽤 긴 시간을 들였다. 에공~~
늙어도 개발을 취미삼아 조금씩 할 수 있었으면 좋겠는데 , 어째 개발 환경 설정이 점점더 복잡해 지고 있는 것 같다.

개발환경도 단순화 시킬수 없을까? 잡스흉아처럼...ㅋㅋ







spring Framework 개발환경 설정(1) 에서는 eclips Maven project 로 spring Framework 설정방법을 살펴봤다.
이번에는 이미 설정되어 있는 spring Framework에   iBatis 설정을 추가한다. 

FOCUS
spring Framework 에 iBatis 설정 하고 테스트 페이지 만들기

Reference
1. jsp taglib 사용 위해 maven 에 설정 해야 할 dependency?

   <dependency> 
    <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version>
 </dependency>
 
 <dependency>
   <groupId>taglibs</groupId>
   <artifactId>standard</artifactId>
   <version>1.1.2</version> 
    </dependency>

2. iBatis 설정하여 개발할때 편하게 개발 할 수 있는 순서
  1)Table  스키마 확인
  2) iBatis resultMap 작성
  3) DB Query 문 작성
  4) DAO 작성
  5) JSP 작성
  6) Service & Controller 작성
  7) 필요하면 환경설정파일 변경.


Need to know
iBatis 사용법.




iBatis 연동을 위해 아래의 작업을 진행한다.
1. pom.xml에 iBatis dependency 추가.
2. /WEB-INF/web.xml 수정.
3. /WEB-INF/spring/spring-config.xml 생성 .
4. /WEB-INF/sql-map-config.xml 생성 
5. Test.xml(sqlmap 파일) 생성.
6. dao 파일 생성
7. domain 생성
8. Controller 수정
9. JSP 수정


1. pom.xml 에 iBatis dependency 추가.
   ( spring Framework 개발환경 설정(1) 에 첨부된 파일 이미 추가되어 있슴)
<dependencies>
...
 <!--  DB- jdbc driver 시작  -->
    <dependency>    
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>5.1.18</version>
    </dependency>
    <!--  DB - jdbc driver끝  -->
    
    <dependency>
   <groupId>commons-dbcp</groupId>
   <artifactId>commons-dbcp</artifactId>
   <version>1.4</version>
 </dependency>

 <dependency>
   <groupId>org.apache.ibatis</groupId>
   <artifactId>ibatis-sqlmap</artifactId>
   <version>2.3.4.726</version>
 </dependency>
...
</dependencies>



2. WEB-INF/web.xml 수정
아래의 내용을 web.xml 에 추가. 

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/*-config.xml</param-value>
 </context-param>

 <listener>
  <display-name>SpringContextLoader</display-name>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>


3. /WEB-INF/spring/spring-config.xml 생성 
web.xml 에 선언 후, 
/WEB-INF/spring 디렉토리에 *-config.xml 로 명명되는 파일은 spring configuration 용으로 사용.

아래는 spring-config.xml (jdbc , ibatis, dao 설정)

<?xml version="1.0" encoding="UTF-8"?>
<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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd
         http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd
         http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
 
    
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://domain or ip/dbname"/>
        <property name="username" value="id"/>
        <property name="password" value="password"/>
        <property name="maxActive" value="30"/>
        <property name="maxIdle" value="10"/>
        <property name="maxWait" value="1000"/>
        <property name="defaultAutoCommit" value="true"/>
    </bean>

 
 <!-- SqlMap setup for iBATIS Database Layer -->
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
  <property name="dataSource" ref="dataSource"/>
 </bean>
 
 
 <!--  DAO -->  
 <bean id="testDao" class="com.springTest2.dao.TestDao">
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean>

</beans>


4. /WEB-INF/sql-map-config.xml 생성 

아래의 내용은 query 문이 기록된 xml resource 설정

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
 <sqlMap resource="com/springTest2/dao/map/Test.xml" />
</sqlMapConfig>

5. Test.xml(sqlmap 파일) 생성.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="Test">

 <typeAlias alias="TestTableInfo" type="com.springTest2.domain.TestTableInfo" />
 
 <resultMap id="testTableInfoResult" class="TestTableInfo">
  <result property="name" column="NAME" />
  <result property="age" column="AGE" />
  <result property="sex" column="SEX" />
 </resultMap>


 <!--  testTable 모든 데이터 조회  -->
 <select id="getTestTableList" parameterClass="map" resultMap="testTableInfoResult">
  SELECT name, age, sex 
  FROM testTable 
 </select> 

</sqlMap>


6. dao 파일 생성
package com.springTest2.dao;

import java.util.List;
import java.util.Map;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;


public class TestDao extends SqlMapClientDaoSupport{

 //testTable list를 조회한다.
 public List getTestTableData(Map map ) throws DataAccessException {
  return  getSqlMapClientTemplate().queryForList("getTestTableList", map);
 }
 
 
}


7. domain 생성 

package com.springTest2.domain;

public class TestTableInfo {
 
 private String name;
 
 private int  age;
 
 private String sex;

 
 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String getSex() {
  return sex;
 }

 public void setSex(String sex) {
  this.sex = sex;
 }
 

}


8. Controller 수정

보통 Controller 에서는 Service Object만 사용하나  지금 테스트 하는 예제는 단순하기때문에 Service단을 생략하고 
Controller에서 Dao를 설정하여 사용하였다.


package com.springTest2.controller;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.springTest2.dao.TestDao;

  
  
 @Controller
 public class TestController {
 
  @Autowired
  private TestDao testDao;
  
 
  @RequestMapping("/test1.do")
  public ModelAndView helloworld(){
  
   String message = "Hello Spring Framework";
   
   ModelAndView mnv = new ModelAndView();
  
   mnv.setViewName("resultPage");
   mnv.addObject("message", message);
  
   //query 문에 넘길 param 없으므로 아무값도 설정하지 않는다.
   HashMap map = new HashMap();
   
   //testTable data를 조회한다.
   List list = testDao.getTestTableData(map);
   mnv.addObject("TestTalbeDataList", list);
   
   return mnv; 
  
  }

  
 }

 

9. JSP 수정

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!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">
</head>
<body>
    ${message} 
    <br/>
    <br/>
    <table border="1">
     <!- DB에서 조회한 데이터 Display 하는 영역 -->
     <c:forEach var="TestTableData" items="${TestTalbeDataList}" >
          <tr>
           <td>name</td>
           <td>age</td>
           <td>sex</td>
          </tr>
         <tr>
            <td>${TestTableData.name}</td>
            <td>${TestTableData.age}</td>
            <td>${TestTableData.sex}</td>
          </tr>
      </c:forEach>
    </table>

</body>
</html>

결과확인




이제 spring Framework + iBatis 까징 설정 했으니 logging만 설정하믄 기본적인 준비는 다 되는 것 같다.

FOCUS
spring Framework에 logging 설정


Reference
1. http://shonm.tistory.com/217
2. http://blog.outsider.ne.kr/561

Need to know
/main/resource/ log4j.properties 파일이 위치하게 하는 설정법은 어떻게 하는거지?


1. /WEB-INF/ web.xml 에 아래와 같이 listener 추가.
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

2. /WEB-INF/web.xml 에서 Log4J 설정파일 위치 설정

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/logging/log4j.properties</param-value>
</context-param>

3. log4j 설정 파일인 log4j.properties 작성

  2.에서 설정한 위치에 log4j.properties 작성.


4. code 에 logging 적용시

private Logger log = Logger.getLogger(this.getClass());   
...
...

log.debug("this is spring Framework logger Test");

'스프링3.0' 카테고리의 다른 글

contextConfigLocation  (0) 2012.07.04
MyBatis  (0) 2012.07.03
Srping 3.0 sqlSession+DataSource 구현 하기. (Spring+mybatise0  (0) 2012.05.19
web.xml 구현부 encoder  (0) 2012.05.19
Spring 개발 환경 .  (0) 2012.05.19
Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :