본문 바로가기

스프링 프레임워크/Spring+Oracle+MyBatis 게시판 프로젝트

[Spring+Oracle+MyBatis]1. Spring MVC 프로젝트 생성

[Spring+Oracle+Mybatis 게시판 만들기 첫번째 시간]
스프링MVC프로젝트 생성 및 pom.xml 수정 및 필요 라이브러리 추가해서
톰캣서버를 통해 프로젝트를 실행시켜본다.

1. STS에서 Spring MVC Project를 생성해준 후 pom.xml에 버전 수정 및 라이브러리들을 받아준다.

<!-- Spring, Java버전 수정 -->
<properties>
    <java-version>1.8</java-version>
    <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-Xlint:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>
<!-- jUnit, 테스트 관련 -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
    <scope>test</scope>
</dependency>

<!--MyBatis관련-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

<!--트랜잭션관련-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

<!--jdbc관련-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

<!--log4j2 관련-->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>

<!--hikariCP관련-->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>2.7.4</version>
</dependency>

<!--json관련-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.6</version>
</dependency>

<!--servlet관련-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

2. 프로젝트 설정에 Project Facets에서 java를 1.8로 바꿔준다.

3. Java build path에서 jre 버전 수정 및 java Compiler에서 java 버전 수정.

jre버전 수정
java 버전 수정


4. Java Build Path의 Libraries탭에 ojdbc8.jar추가해준다. Deployment Assembly에도 추가해준다.

libraries탭에 ojdbc8추가
web deployment assembly에 ojdbc8.jar 추가

5. sql로그를 제대로 보기 위해서 log4jdbc-log4j2 라이브러리를 사용해야한다.  pom.xml에는 위에서 추가하였으니,
src/main/resources 밑에 log4jdbc.log4j2.properties 파일을 추가해주면된다.

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

6. 필요한 로그만 콘솔에서 보이도록 src/main/resource아래 log4j.xml의 로그레벨을 수정해준다. 
이때 주의할 점이, src/test/java 밑에 작성한 테스트코드에 대한 로그에 대해서는 src/test/resources 아래 log4j.xml이
따로 있으니 로그레벨을 각각 설정해줘야한다. 아무리 src/main/resource 아래의 log4j.xml에 로그레벨을 변경해도 테스트코드에는 적용되지 않는다..

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- Appenders -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p: %c - %m%n" />
		</layout>
	</appender>
	
	<!-- Application Loggers -->
	<logger name="org.zerock.web">
		<level value="info" />
	</logger>
	
	<!-- Application Loggers -->
	<logger name="org.zerock.persistence">
		<level value="info" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<!-- [시작]log4j 추가후 필요없는 주석은 로그레벨을 높여줘서 콘솔에 깔끔하게 나오도록 수정함. -->
	<logger name="jdbc.audit">
		<level value="warn" />
	</logger>
	<logger name="jdbc.connection">
		<level value="warn" />
	</logger>
	<logger name="jdbc.resultset">
		<level value="warn" />
	</logger>
    <logger name="com.zaxxer.hikari">
		<level value="warn" />
	</logger>
	<!-- [끝]log4j 추가후 필요없는 주석은 로그레벨을 높여줘서 콘솔에 깔끔하게 나오도록 수정함. -->

	<!-- Root Logger -->
	<root>
		<priority value="info" />
		<appender-ref ref="console" />
	</root>
	
</log4j:configuration>

7. 추가한 라이브러리들 및 버전들이 문제 없는지 확인해주기 위해 톰캣서버를 실행시키고,
프로젝트 생성시 자동으로 만들어진 HomeController의 url을 호출해본다.

[다음시간 내용]
Oracle DB연결 및 테이블 및 더미데이터를 생성한다.
hikariCP 설정을 한다.
MyBatis 환경을 구성한다.
jUnit을 통해 테스트코드를 작성하여 연결에 이상없는지 확인한다.