# 사전작업 eclipse에서 Spring Project-> Spring MVC Project 로 프로젝트 생성
1. 프로젝트 우클릭 -> Properties ->JavaCompiler
(1) JDK Compliance에서 Use compliance from execution environment .... 체크 해제 후
(2) compiler compliance leve을 1.8로 변경.
왜냐하면 난 JDK 1.8을 사용하고있으니..
2. 프로젝트 우클릭 -> Properties -> Project Facets
Java 버전을 1.8로 변경
3. pom.xml 에서 java버전을 바꿔줌
이왕이면 스프링 프레임워크 버전도 맞게 변경. 난 4.2.2를 사용하니.
<properties>
<java-version>1.8</java-version>
<org.springframework-version>4.2.2.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
4. Mysql드라이버, Spring-test, Mybatis, Mybatis-spring 네가지 모듈을 설치해야함
어디서? Maven을 이용해서. .Pom.xml에 4가지 라이브러리를 입력해주면 되는데
http://mvnrepository.com/ 에 들어가면서 자신의 버전에 맞는 코드를 긁어오면됨.
pom.xml
<!-- mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<!-- spring jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
<!-- spring test-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
그러면 Maven Dependencies에 보면 jar파일이 생겼을 것이다.
- log4jdbc-log4j2를 이용할 경우
pom.xml
<!-- log4jdbc -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
를 추가해주면된다.
src/main/resources 폴더에 log4jdbc.log4j2.properties 파일과 logback.xml파일을 추가해주면된다.
파일명 : log4jdbc.log4j2.properties
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
파일명 logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/book/logging/logback/base.xml"/>
<logger name="jdbc.sqlonly" level="DEBUG"/>
<logger name="jdbc.audit" level="INFO"/>
<logger name="jdbc.resultset" level="ERROR"/>
<logger name="jdbc.resultsettable" level="ERROR"/>
<logger name="jdbc.connection" level="INFO"/>
</configuration>
5. 이제 mybatis 연동을 해주어야함.
그러기위해선 root-context.xml에서 설정해줘야함
경로 : src->main->WEB-INF-> spring -> root-context.xml
먼저 root-context.xml을 클릭하면 하단에 Namespages를 클릭 후
캡처화면처럼 체크해주고 저장
체크 항목 aop, beans, context, jdbc, mybatis-spring
그 다음 Source에 들어감
(1). DataSource 설정
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/db명"></property>
<property name="username" value="sql아이디"></property>
<property name="password" value="sql패스워드"></property>
</bean>
만약 log4jdbc를 이용하여 할 경우 dirverClassName에서 value 값을 net.sf.log4jdbc.sql.jdbcapi.DriverSpy로 변경하면된다.
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
(2). SqlSessionFactory 객체 설정
- mybatis와 스프링 연동 작업에서 핵심은 Connection을 생성하고 처리하는 SqlSessionFactory는 Sql의 DB연결과 SQL실행의 모든 것 가진 객체임
<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:/mappers/**/*Mapper.xml"></property>
</bean>
- property name에보면 configLocation과 mapperLocation이 있는데
configLocation은 mybatis-cofing.xml 파일의 경로고
mapperLocation은 mapper의 경로
그러므로 본인이 설정한 경로에 맞게 맞춰주면 될 것이다.
나는 src/main/resources 에 mybatis-config.xml을 넣어줌
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>
mapper는
src/main/resources/ 에서 mappers 패키지를 만들어서 넣어줌.
이건 알아서.
mappers/ 안에 있는 exMapper.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
(3) SqlSessionTemplate 설정
- DAO에서 DB의 연결의 맺고 작업이 완료된 후 연결을 하는 작업을 SqlSessionTemplate 클래스를 이용하여 처리
SqlSessionTemplate는 mybatis의 SqlSession인터페이스로 구현한 클래스로 기본적인 트랜잭션 관리나 쓰레드 처리의 안전성보장과 DB연결과 종료를 책임짐
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="SqlSessionFactory"></constructor-arg>
</bean>
그럼 다된거.
그리고 테스트를 해보면됨.
'Spring' 카테고리의 다른 글
AOP(Aspect Oriented Programming) (0) | 2023.03.31 |
---|---|
[Spring Framework] IOC/DI (0) | 2023.03.29 |
[스프링] 자동으로 빈 와이어링하기(Bean Auto Wiring) (0) | 2018.11.19 |
스프링 목적과 DI 정의 (0) | 2018.11.16 |
FactoryBean을 사용해야하는 경우와 사용예제(link) (0) | 2016.05.26 |