나는 메이븐은 책을 보고 지금으로 부터 1년전에 공부를 했었다..
골이란게 있었고.. 페이즈란게 있었던거 같았고.. 중앙 저장소.. 사내 저장소.. 등등의 내용이 어렴풋이 기억이 난다. 그 기억을 모두 잃어버릴까 두려워 다시 공부를 한다.
허드슨은 구글 검색을 하여 대충 실습하며 동작 방식을 아주 조금 이해 했다. 메이븐과 허드슨을 사용하여 프로젝트를 구성해 보려고 한다.
3탄. 메이븐 + 스프링 + 아이바티스
-----------------------------------------------------------------------------------------------------------------
이제 라이브러리를 추가하자. 나는 이클립스에 메이븐 플러그인이 설치 되어있다.
메이븐의 라이브러리 의존성 관리의 이점을 절실히 느낄수 있었다,
이클립스 메이븐 플러그인을 이용하여 spring-context 만 추가를 하면 spring-context 라이브러리가 의존하는 라이브러리가 자동으로 추가가 된다..
메이븐을 사용하지 않았다면 일일히 jar 파일을 찾아서 lib 경로에 넣어줬어야 한다. 그래서 내가 쓰고 싶은 라이브러리를 넣어봤다.
<결과>
1. 최종 라이브러리 dependencies ( 다른 기능이 필요하다면 다른 라이브러리도 추가하자. )
commons-dbcp, commons-pool, commons-collections 는 아이바티스에서 필요하다.
처음에 commons 들을 추가하지 않고 테스트 요청을 한 결과 sql 부분에서 Exception이 발생 하였다.
dependencies 라이브러리중 ojdbc14 를 dependencies 하려고 하면 에러가 발생할 것이다.
중앙 저장소에 저 라이브러리가 없는 이유였다. 그래서 pom.xml에 저장소를 추가 해줘야 했다.
<!-- 레파지토리 추가 --> <!-- 오라클과 메이븐의 라이선스 문제로 메이븐 중앙 저장소에서 받을 수 없어서--> <repositories> <repository> <id>mesir-repo</id> <url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url> </repository> </repositories> <!-- 레파지토리 추가 끝-->
<build> <plugins> ... </build> |
2. 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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>MavenTest</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
<!-- encoding --> <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> <!-- encoding end -->
<!-- log4j --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/conf/log4j.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- log4j end -->
<!-- application context --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/conf/applicationContext.xml</param-value> </context-param> <!-- application context end -->
<!-- dispatcher-servlet.xml --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/conf/dispatcher-servlet.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- dispatcher-servlet.xml end -->
</web-app> |
3. dispatcher-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" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" 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="org.thinker.mkk.controller" /> </beans> |
4. applicationContext.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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <!-- 아이바티스 설정 --> <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:@IP:1521:ora11"/> <property name="username" value="scott"/> <property name="password" value="tiger"/> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="WEB-INF/conf/sqlmapConfig.xml"/> <property name="dataSource" ref="dataSource"/> </bean> <!-- 아이바티스 설정 끝--> <bean id="testDAO" class="org.thinker.mkk.dao.TestDAO" p:sqlMapClient-ref="sqlMapClient" />
</beans> |
<?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 enhancementEnabled="true" useStatementNamespaces="true" />
<sqlMap resource="org/thinker/mkk/sql/test.xml" />
</sqlMapConfig> |
6. 전체 구조
테스트 내용은 select sysdate from dual 로 시간을 리턴해 준다.
7. 테스트 결과 성공
오늘은 새벽 3시가 지났다. 메이븐의 강력한 기능들이 너무나 많지만 다른 기능들은 몇 주 후로 미루기로 하고
다음시간에는 허드슨을 파악해보자.
빨리 자야지..회사가려면...
'open source > maven & hudson' 카테고리의 다른 글
이클립스 maven update project configuration 후 에러발생 (0) | 2014.08.20 |
---|---|
메이븐 플러그인 :: maven-jar-plugin, maven-dependency-plugin (0) | 2013.06.12 |
메이븐 + 스프링 + ibatis + 허드슨 연동 구축 4탄 - 허드슨 연동 배포 (1) | 2013.01.11 |
메이븐 + 스프링 + ibatis + 허드슨 연동 구축 2탄 - 메이븐 폴더 구조 변경하기 (0) | 2013.01.09 |
메이븐 + 스프링 + ibatis + 허드슨 연동 구축 1탄 - 이클립스 메이븐 프로젝트 생성 (0) | 2013.01.09 |