데이터베이스 관련 자바 빈 설정 개요
스프링에서 데이터베이스에 접속하기 위해서는 최소한 세개의 자바 빈이 필요합니다.
- 데이터소스 빈 : 스프링에서 데이터베이스에 접속하기 위한 접속 정보를 뜻합니다.
sqlSessionFactory
빈 : 데이터베이스와 연결을 맺고 끊어질 때까지의 라이프 사이클을 관리하는sqlSession
객체를 만듭니다.sqlSessionTemplate
빈 : 데이터베이스에 개별적으로 쿼리를 실행시키는 객체입니다.
root-context.xml 파일 복사
- 패키지 탐색기에서
root-context.xml
파일을 복사합니다. 우클릭 후 Copy를 클릭하거나ctrl + c
를 누릅니다.
root-context.xml 붙여넣기
src/main/webapp/WEB-INF/spring
폴더를 선택합니다.- 우클릭 후 Paste 를 클릭하거나
ctrl + v
를 누릅니다.
db-context.xml 파일 생성
- 파일명 변경 팝업이 보여집니다.
db-context.xml
로 파일 이름을 변경합니다.- OK 버튼을 클릭합니다.
db-context.xml 파일 내용 확인
- 생성된
db-context.xml
파일 내용을 확인합니다. 아무 내용도 없네요.
데이터 소스 빈 정의하기
src/main/webapp/WEB-INF/spring/db-context.xml
<!-- DB Context -->
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="SPRNG_BLG_USR" />
<property name="password" value="1234" />
</bean>
<!-- Root Context: defines shared resources visible to all other web components -->
항목을 삭제합니다.- 위의 코드 항목을 입력합니다.
sqlSessionFactory 빈 정의하기
src/main/webapp/WEB-INF/spring/db-context.xml
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations"
value="classpath:/sqlmap/**/*_SQL.xml" />
</bean>
- 데이터소스 빈 정의 아래에
sqlSessionFactory
코드를 입력합니다.
sqlSessionTemplate 빈 정의하기
src/main/webapp/WEB-INF/spring/db-context.xml
<bean id="sqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
sqlSessionFactory
빈 정의 아래에sqlSessionTemplate
코드를 입력합니다.
web.xml 파일에 db-context.xml 파일 추가
src/main/webapp/WEB-INF/web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/db-context.xml</param-value>
</context-param>
web.xml
파일을 엽니다.context-param
항목을 추가합니다.