SqlSessionFactory
객체를 직접사용한다.[MyBatis 스프링 연동 라이브러리 의존관계 설정(Maven 프로젝트)]
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring-version}</version>
</dependency>
root-context.xml
)에 데이터 소스를 설정한다.[Connection Pool 설정]
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/ssafy"></property>
</bean>
DataSourceTransactionManager
타입의 빈을 사용한다.tx:annotation-driven
요소는 트랜잭션 관리방법을 어노테이션으로 선언하도록 설정한다.@Transaction
이 선언되어 있으면, AOP를 통해 트랜잭션을 처리한다.[트랜잭션 관리자 설정]
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name = "dataSource" ref="dataSource">
</bean>
[어노테이션기반 트랜잭션 설정]
<tx:annotation-driven tranaction-manager="tranactionManager">
SqlSessionFactory
객체를 생성하기 위해서는 SqlSessionFactoryBean
을 빈으로 등록해야 한다.SqlSessionFactoryBean
을 빈으로 등록할 때, 사용할 데이터 소스와 mybatis 설정파일 정보가 필요하다.[SqlSessionFacotryBean 설정]
<bean id="sqlSessionFactoryBean" class="org.mabatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource">
<property name="configLocation" value="classpath:com/test/config/mybatis/mybatis-config.xml">
<property name="mapperLocations">
<list>
<value>classpath:com/test/config/mybatis/admin_board.xml</value>
<value>classpath:com/test/config/mybatis/admin_member.xml</value>
<value>classpath:com/test/config/mybatis/admin_poll.xml</value>
</list>
</property>
</bean>
[mapper 스캐너 사용]
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basepackage" value="com.test.edu.mybatis.mapper">
</bean>
[mapper 인터페이스 직접등록]
<bean id="authorMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.test.edu.mybatis.mapper.AuthorMapper">
<property name="sqlSessionFactory" ref="sqlSessionFactory">
</bean>
<configuration>
<typeAliases>
<typeAlias alias="listParameterDto" type="org.test.commons.model.ListParameterDto"/>
<typeAlias alias="boardParameterDto" type="org.test.board.model.boardParameterDto"/>
</typeAliases>
</configuration>
데이터 접근 객체는 특정한 기술을 사용하여 데이터 저장소에 접근하는 방식을 구현한 객체이다.
@Repository
는 데이터 접근 객체를 빈으로 등록하기 위해 사용하는 스프링에서 제공하는 어노테이션이다.@Autowired
어노테이션을 통해, 사용하려는 Mapper 인터페이스를 데이터접근 객체와 의존관계를 설정한다.