sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
extra_vars6 |
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<!--
- 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 a combined database,
- using a local DataSource with DataSourceTransactionManager. It does not
- need any JTA support in the container: It will run as-is in plain Tomcat.
실제 J2EE component(servlet,JSP,EJB..)에서 어떻게 사용할 것인지, 그를 위한 API 들을 정의한 spec.
근데 여기선 데이터베이스 억세스시에 DataSourceTransactionManager와 함께 local DataSource를
사용하고 있어서 container에서 그 어떤 JTA도 필요없다는군.
연동되어 있는 둘 이상의 데이터베이스 집단을 combined database라고 한다.
그 combined database가 JTA를 통해서 접근하게 되는 것이고...
-->
<beans>
<!-- ========================= RESOURCE DEFINITIONS ========================= -->
<!-- Local Apache Commons DBCP DataSource that refers to a combined database -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<!-- The placeholders are resolved from jdbc.properties through -->
<!-- the PropertyPlaceholderConfigurer in applicationContext.xml -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
jdbc.properties은 열어보면 그냥 URL과 ID랑 PASSWORD가 있을 뿐
<!-- Transaction manager for a single JDBC DataSource -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 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"/>
<property name="dataSource" ref="dataSource"/>
</bean>
위에서 생성한 dataSource sql-map-config.xml의 설정을 이용한다.
이를 통해 생성되는 객체의 id는 sqlMapClient이다.
<!-- ========================= DAO DEFINITIONS: IBATIS IMPLEMENTATIONS ========================= -->
<bean id="accountDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapAccountDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<bean id="categoryDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapCategoryDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<bean id="productDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapProductDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<bean id="itemDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapItemDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<!-- Refers to the combined database here -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<bean id="orderDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapOrderDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
<property name="sequenceDao" ref="sequenceDao"/>
</bean>
<!-- 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="sqlMapClient" ref="sqlMapClient"/>
<property name="sequenceDao" ref="sequenceDao"/>
</bean>
-->
클래스가 틀리다. 아마 쿼리의 내용이 다를듯 하다.
<!-- Refers to the combined database here -->
<!-- (see dataAccessContext-jta.xml for an alternative) -->
<bean id="sequenceDao" class="org.springframework.samples.jpetstore.dao.ibatis.SqlMapSequenceDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<!-- 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="sqlMapClient" ref="sqlMapClient"/>
</bean>
-->
</beans>