본문 바로가기

프로그래밍

[spring]SpringFramework 초반 세팅

728x90
반응형

1.Spring Legacy Project -Spring MVC Project 를 이용해서 프로젝트 생성 (패키지명 : com.kimjaeeun.controller)


pom.xml

 

2.pom.xml springframework 버전 5.0.7 버전으로 바꾸기

 

3.java-version 1.8 , 3.5.1 로 바꾸기 (maven-compiler-plugin)

 

4.maven - updateproject 하기

 

5.프로젝트 실행해보기 hello world!

 

6.lombok.jar 설치

 

7.maven추가

spring-test(${org.springframework-version}) , lombok(1.18.12) 추가 

log4j(1.2.17) junit(4.12)버전 변경


root-context.xml

 

8.namespace context체크하고 source탭에서 <context:component-scan base-package="com.kimjaeeun.sample"></context:component-scan> 추가하기

 

9. oracle 설치하고 ojdbc.jar파일을 프로젝트에 추가시키기(java Build Path, Deployment Assembly)

 

10.JDBC테스트 코드 작성

package com.kimjaeeun.persistence;

import static org.junit.Assert.fail;

import java.sql.Connection;
import java.sql.DriverManager;

import org.junit.Test;

import lombok.extern.log4j.Log4j;

@Log4j
public class JDBCTests {
   static {
      try {
    	  //forName() : 물리적인 클래스 파일명을 인자로 넣어주면 이에 해당하는 클래스를 반환
         Class.forName("oracle.jdbc.driver.OracleDriver");
      } catch (ClassNotFoundException e) {
         e.printStackTrace();
      }
   }
   
   @Test
   public void testConnectioin() {
      try(Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "BOOK_EX", "BOOK_EX")) {
         log.info(conn);
         
      }
      catch(Exception e) {
         fail(e.getMessage());
      }
   }
}

 

11.pom.xml에 HikariCP maven 추가

 

12.root-context.xml에 입력

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
		<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"/>
		<property name="username" value="BOOK_EX" />
        <property name="password" value="BOOK_EX" /> 
	</bean>
	
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
		<constructor-arg ref="hikariConfig"/>
	</bean>

13.datasource 테스트 코드 실행

package com.kimjaeeun.persistence;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import lombok.Setter;
import lombok.extern.log4j.Log4j;

//빈 테스트하는 파일
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
   @Autowired @Setter
   private DataSource dataSource;
   
   @Test
   public void testExist() {
      assertNotNull(dataSource);
      log.info(dataSource);
   }
   //스프링에 빈으로 등록된 DateSource를 이용해서 Connection을 제대로 처리할 수 있는지 확인
   @Test
   public void testConnection() {
      try(Connection conn = dataSource.getConnection()) {
         log.info(conn);
      }catch (SQLException e) {
         fail(e.getMessage());
      }
   }
   
}

MyBatis연동하기

 

1.pom.xml에 maven 4개 추가

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>
          
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>   

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

 

2.root-context에 추가

<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.kimjaeeun.domain"></property>
</bean> 

 

 

3. root-context에 추가

</mybatis-spring:scan base-package="com.kimjaeeun.mapper">

 

4.sql 로그 잘보기 위해 pom.xml에 추가 

<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>

 

5.log4jdbc.log4j2.properties파일 java/resource밑에 추가 

 

6.root-context.xml

<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/> 변경

<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"/> 변경

728x90
반응형