[Spring] 초기설정

Posted by 신희준 on November 20, 2017



2017 - 11 - 20 (월)


초기설정


오랫만에 스프링을 다시 보려하니까 막막하여 이전에 블로깅한 자료를 보면서 다시 정리하고자한다.

1 . DB 유저생성

우선 데이터베이스와 연동 테스트를 위해 데이터베이스 설치 및 유저 생성 / 스키마생성을 해야한다.

Post Sample Image

mysql workbench root 로 접근 후 좌측상단의 users and privileges 에서 user 생성후 administrative Roles 탭에서 권한을 부여한다.




2 . 스키마 생성

Post Sample Image

위처럼 스키마탭에서 마우스 우측 클릭 후 스키마를 생성한다.

Post Sample Image

으로 들어가 default schema 에 생성한 스키마의 이름을 준다.




3 . DB 연결 테스트 ( JUnit 활용 )

Junit 버전 : 4.12 ( pom.xml 에서 버전 수정 필요 )

mysql 드라이버와 연결을 위해 mysql-connector-java dependency 를 추가해준다.

<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.41</version>
</dependency>


jdk 버전도 높여줄 필요가 있다.

jdk 버전 : 1.8

  • pom.xml 에서 java-version 을 1.8 로바꾸고 maven-compiler-plugin 의 configuration source 와 target을 1.8로 바꾼다.

  • properties 에서 project Facets 에서 java 버전을 1.8 로 올려준 후 메이븐 업데이트 실행


JDBC 연결 테스트코드

public class MySQLConnectionTest {
	private static final String Driver = "com.mysql.jdbc.Driver";
	private static final String URL = "jdbc:mysql://127.0.0.1:3306/allbody?useSSL=false";
	private static final String USER = "db user이름";
	private static final String PW = "db비밀번호";
	@Test
	public void testConnection() throws Exception{
		Class.forName(Driver);

		try(Connection con = DriverManager.getConnection(URL, USER, PW)){
			System.out.println(con);

		}catch(Exception e) {
			e.printStackTrace();
		}
	}
}




4 . MyBatis + MySQL 설정 후 테스트

필요 dependency : spring-test 의 경우 was 없이 간단히 테스트를 하기위해 라이브러리를 추가합니다.

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>

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

위의 dependecy를 추가한 후 메이븐 업데이트 필수

이 후 root-context.xml 의 namespace 에 다음 configuration 파일을 체크하고 메이븐 업데이트 한다.

Post Sample Image




5 . datasource 테스트

root-context.xml 에 다음 소스 추가

<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">

		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

 		<property name="url"
			value="jdbc:mysql://127.0.0.1:3306/allbody?useSSL=false"></property>

		<property name="username" value="유저아이디"></property>
		<property name="password" value="비밀번호"></property>
	</bean>

테스트 코드를 만들어 데이터소스 테스트 진행

package com.bitproject.test;

import java.sql.Connection;
import javax.inject.Inject;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
public class DataSourceTest {

   @Inject
   private DataSource ds;

   @Test
   public void testConnection()throws Exception{

      try(Connection con = ds.getConnection()){
         System.out.println(con);
      }catch(Exception e) {
         e.printStackTrace();
      }
   }
}




6 . MyBatis 연결

root-context.xml 에 sqlSessionFactory 객체를 설정해준다.

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
</bean>

resources/mybatis-config.xml 파일 작성

<?xml version="1.0" encoding = "UTF-8"?>
<!DOCTYPE configuration
	PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
	"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

MyBatis 연동이 잘 되었는지 테스트 한다.

package com.bitproject.test;


import javax.inject.Inject;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"file:src/main/webapp/WEB-INF/spring/**/root-context.xml"})
public class MyBatisTest {

   @Inject
   private SqlSessionFactory sqlFactory;

   @Test
   public void testFactory() {
	   System.out.println(sqlFactory);
   }

   @Test
   public void testSession()throws Exception{
	   try(SqlSession session = sqlFactory.openSession()){
		   System.out.println(session);
	   }catch(Exception e) {
		   e.printStackTrace();
	   }
   }
}