sitelink1  
sitelink2  
sitelink3  
extra_vars6  

<?xml version="1.0" encoding="UTF-8"?>
<!--
  - Application context definition for JPetStore's data access layer.
  - Accessed by business layer objects defined in "applicationContext.xml"
  - (see web.xml's "contextConfigLocation").
  -
  - This version of the data access layer works on two databases (main/order),
  - using JNDI DataSources with JtaTransactionManager. It obviously depends on
  - JTA support in the container, and on pre-configured container DataSources.
 

JTA는 두 데이터베이스(main과 order)를 접속하는데, JtaTransactionManager과 함께 JNDI DataSources를 사용한다.

  -
  - This version also uses the "jndi:" namespace introduced in Spring 2.0
  - to configured JNDI referenced objects.
  -->
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:jee="http://www.springframework.org/schema/jee"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
 <!-- ========================= RESOURCE DEFINITIONS ========================= -->
 <!-- Main JNDI DataSource for J2EE environments -->
 <!-- Refers to the main database, containing product and account data -->
 <!-- (see dataAccessContext-local.xml for an alternative) -->
    <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/jpetstore"/>   

J2EE 환경에 대한 메인 JNDI DataSource 이다. 메인이 되는 정보(상품과 계정) 데이터베이스를 참조할 것이다.

 <!-- Additional JNDI DataSource for J2EE environments -->
 <!-- Refers to the order database, containing order data -->
 <!-- (see dataAccessContext-local.xml for an alternative) -->
    <jee:jndi-lookup id="orderDataSource" jndi-name="java:comp/env/jdbc/jpetstore-order"/> 

J2EE 환경에 대한 부가적인 JNDI DataSource 이다. 주문정보를 담고 있는 주문 데이터베이스를 참조하게 된다.

 <!-- Transaction manager that delegates to JTA (for a transactional JNDI DataSource) -->
 <!-- Necessary here due to the need for distributed transactions across two databases -->
 <!-- (see dataAccessContext-local.xml for an alternative) -->
 <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/> 

JNDI DataSource의 Transaction 처리를 위해 JTA에게 그 부분을 위임한단다.
JTA가 두 데이터베이스의 분산 트랜잭션을 보장해준다는 거군.

 <!-- SqlMap setup for iBATIS Database Layer -->
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
 </bean> 

local과 다름없어 보인다. 단지 JNDI를 이용하기 때문에 dataSource가 없다.
web.xml 화일의 맨 밑의 하단부를 보면 <resource-ref>태그로 "jdbc/jpetstore"와 "jdbc/jpetstore-order"가 정의되어 있다.


 <!-- ========================= DAO DEFINITIONS: IBATIS IMPLEMENTATIONS ========================= --> 

 

복수 데이터베이스이기 때문에 DAO들에 대한 설정시 JNDI에서 찾아낸 dataSource와 빈관리를 위한 sqlMapClient를 참조한다.

 <bean id="accountDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapAccountDao">
  <property name="dataSource" ref="dataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean>
 <bean id="categoryDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapCategoryDao">
  <property name="dataSource" ref="dataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean>
 <bean id="productDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapProductDao">
  <property name="dataSource" ref="dataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean>
 <bean id="itemDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapItemDao">
  <property name="dataSource" ref="dataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean>
 <!-- Refers to the order database here -->
 <!-- (see dataAccessContext-local.xml for an alternative) -->
 <bean id="orderDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapOrderDao">
  <property name="dataSource" ref="orderDataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
  <property name="sequenceDao" ref="sequenceDao"/>
 </bean> 

 

 

이 부분에서 조금 다르다. dataSource를 orderDataSource로 이용하고 있다.

 <!-- OrderDao definition for MS SQL Server -->
 <!-- (to be used instead of the default orderDao) -->
 <!--
 <bean id="orderDao" class="org.springframework.samples.jpetstore.dao.ibatis.MsSqlOrderDao">
  <property name="dataSource" ref="orderDataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
  <property name="sequenceDao" ref="sequenceDao"/>
 </bean>
 -->
 <!-- Refers to the order database here -->
 <!-- (see dataAccessContext-local.xml for an alternative) -->
 <bean id="sequenceDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapSequenceDao">
  <property name="dataSource" ref="orderDataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean> 

 

 

sequenceDao 에 대한 정의는 설정화일에서 찾을 수 없는 것 같다.

 <!-- SequenceDao definition for Oracle databases -->
 <!-- (to be used instead of the default sequenceDao) -->
 <!--
 <bean id="sequenceDao" class="org.springframework.samples.jpetstore.dao.ibatis.OracleSequenceDao">
  <property name="dataSource" ref="orderDataSource"/>
  <property name="sqlMapClient" ref="sqlMapClient"/>
 </bean>
 -->
</beans>
 

 

번호 제목 글쓴이 날짜 조회 수
공지 (확인전) [2021.03.12] Eclipse에서 Spring Boot로 JSP사용하기(Gradle) 황제낙엽 2023.12.23 0
공지 [작성중/인프런] 스프링부트 시큐리티 & JWT 강의 황제낙엽 2023.12.20 6
23 Spring프레임워크 소개문서 (2) 황제낙엽 2007.03.22 123
22 Spring프레임워크 소개문서 (1) 황제낙엽 2007.03.22 107
21 Cugain의 샘플프로젝트 jpetstore 분석기 - (1) jpetstore 설치 file 황제낙엽 2007.02.22 123
20 Cugain의 샘플프로젝트 jpetstore 분석기 - (7) PetStoreImpl.java 황제낙엽 2007.05.24 51
19 Cugain의 샘플프로젝트 jpetstore 분석기 - (6) petstore-servlet.xml 분석 황제낙엽 2007.04.27 19
18 Cugain의 샘플프로젝트 jpetstore 분석기 - (5) applicationContext.xml 분석 황제낙엽 2007.04.21 232
» Cugain의 샘플프로젝트 jpetstore 분석기 - (4) dataAccessContext-jta.xml 분석 황제낙엽 2007.04.21 27
16 Cugain의 샘플프로젝트 jpetstore 분석기 - (3) dataAccessContext-local.xml 분석 황제낙엽 2007.04.21 40
15 Cugain의 샘플프로젝트 jpetstore 분석기 - (2) web.xml 분석 황제낙엽 2007.03.20 92
14 IoC (Inversion of Control) 컨테이너에 대한 정리 황제낙엽 2007.02.21 50
13 자바지기 1차 오픈 소스 스터디 문서모음 file 황제낙엽 2007.01.30 46
12 Spring 프레임워크를 이용한 효율적인 개발 전략 1차 황제낙엽 2007.01.30 47
11 Spring framework jpetstore 샘플 분석기 - (6) jpetstore 예제로 살펴보는 Spring MVC와 iBatis 연동 황제낙엽 2007.01.18 48
10 Spring framework jpetstore 샘플 분석기 - (5) jpetstore 에서의 InternalResourceViewResolver 황제낙엽 2007.01.18 17
9 Spring framework jpetstore 샘플 분석기 - (4) jpetstore 에서의 HandlerMapping 황제낙엽 2007.01.18 36
8 Spring framework jpetstore 샘플 분석기 - (3) jpetstore 에서의 Spring MVC 설정 황제낙엽 2007.01.18 13
7 Spring framework jpetstore 샘플 분석기 - (2) jpetstore 에서의 Spring 초기 설정과 IoC 황제낙엽 2007.01.18 18
6 Spring framework jpetstore 샘플 분석기 - (1) jpetstore 설치하기 황제낙엽 2007.01.18 30
5 Spring WebFlow Introduction (웹개발을 직관적으로) 황제낙엽 2006.12.09 555
4 IoC(Inversion of Control)란 무엇인가? 황제낙엽 2006.12.09 93