Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Spring] myBatis-spring와 주요설정(JNDI: DataSource) 본문
myBatis-spring
📌.myBatis-spring 주요 컴포넌트
- SqlSessionFactoryBean
: (myBatis) SqlSessionFactory를 SqlSessionTemplate의 생성자에 전달한다.
⚠️. Spring Bean으로 등록해야한다.
- SqlSessionTemplate
: (myBatis) SqlSession을 미리 만들어놓는다.
⚠️. Spring Bean으로 등록해야한다.
🪛. Spring Bean 설정파일(beans.xml or myBatis-context.xml)
(0) Bean으로 등록할 때, DataSource 정보와 myBatis Config 파일정보, Mapping 파일 정보 설정
(1) SqlSessionTemplate를 Bean으로 등록
⚠️. JNDI(Java Naming Directory Interface): 이 API를 호출하여 시스템 연결을 제공하는 프로그램 객체를 찾는다.(자바 Naming을 기반으로, DBCP를 연결/관리하는 API, DataSource의 약자.)
⚠️. (javax.sql.)DataSource(connection pool을 관리하는 목적으로 사용하는 객체)
(0) Bean으로 등록할 때, DataSource 정보와 myBatis Config 파일정보, Mapping 파일 정보 설정
(1) SqlSessionTemplate를 Bean으로 등록
⚠️. JNDI(Java Naming Directory Interface): 이 API를 호출하여 시스템 연결을 제공하는 프로그램 객체를 찾는다.(자바 Naming을 기반으로, DBCP를 연결/관리하는 API, DataSource의 약자.)
⚠️. (javax.sql.)DataSource(connection pool을 관리하는 목적으로 사용하는 객체)
[myBatis-context.xml]
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<context:component-scan base-package="web.mvc.service,web.mvc.repository"/>
<context:property-placeholder location="/WEB-INF/spring/appServlet/*.properties"/>
<!-- DBCP를 사용하기 위한 javax.sql.DataSource의 실제 구현체(BasicDataSource) 등록 -->
<beans:bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
p:driverClassName="${jdbc.oracle.driver}"
p:url="${jdbc.oracle.url}"
p:username="${jdbc.oracle.username}"
p:password="${jdbc.oracle.password}"
p:maxActive="10"/>
<!-- myBatis의 주요 컴포넌트 sqlSessionFactory 생성 -->
<beans:bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" /> <!-- 위에서 등록한 DataSource Bean 참조 -->
<beans:property name="mapperLocations" value="classpath:mapper/*Mapper.xml" /> <!-- Mapper.xml 로끝나는 mapper모두 등록 -->
<beans:property name="typeAliasesPackage" value="web.mvc.dto" /> <!-- dto폴더안에있는 클래스들 별칭 자동만듦 - 클래스명의 첫글만 소문자!! -->
<!-- <beans:property name="configLocation" value="classpath:SqlMapConfig.xml"/> -->
</beans:bean>
<!-- myBatis의 주요 컴포넌트 sqlSessionTemplate 생성 -->
<beans:bean id="sqlSession"
class="org.mybatis.spring.SqlSessionTemplate">
<beans:constructor-arg index="0" ref="sqlSessionFactory"/>
</beans:bean>
</beans:beans>
'Backend > 스프링' 카테고리의 다른 글
[Spring] 의존성 주입(DI)에 의한 의존관계 조립 (0) | 2023.09.09 |
---|---|
[Spring] Spring Framework Transaction과 AOP, Transaction Manager (0) | 2023.05.10 |
[Spring] Spring webMVC 동작순서 (1) | 2023.05.06 |
[Spring] webMVC directory 구조와 루트(${pageContext.request.contextPath}), WEB-INF (0) | 2023.05.05 |
[Spring] 파라미터를 받는 @RequestParam과 @PathVariable (0) | 2023.05.05 |
Comments