以下代码是从SpringReference中copy过来的:
<beans>
<bean id= "myDataSource1 " class= "org.springframework.jndi.JndiObjectFactoryBean ">
<property name= "jndiName value= "java:comp/env/jdbc/myds1 "/>
</bean>
<bean id= "myDataSource2 " class= "org.springframework.jndi.JndiObjectFactoryBean ">
<property name= "jndiName " value= "java:comp/env/jdbc/myds2 "/>
</bean>
<bean id= "mySessionFactory1 " class= "org.springframework.orm.hibernate.LocalSessionFactoryBean ">
<property name= "dataSource " ref= "myDataSource1 "/>
<property name= "mappingResources ">
<list>
<value> product.hbm.xml </value>
</list>
</property>
<property name= "hibernateProperties ">
<props>
<prop key= "hibernate.dialect "> net.sf.hibernate.dialect.MySQLDialect </prop>
</props>
</property>
</bean>
<bean id= "mySessionFactory2 " class= "org.springframework.orm.hibernate.LocalSessionFactoryBean ">
<property name= "dataSource " ref= "myDataSource2 "/>
<property name= "mappingResources ">
<list>
<value> inventory.hbm.xml </value>
</list>
</property>
<property name= "hibernateProperties ">
<props>
<prop key= "hibernate.dialect "> net.sf.hibernate.dialect.OracleDialect </prop>
</props>
</property>
</bean>
<bean id= "myTxManager " class= "org.springframework.transaction.jta.JtaTransactionManager "/>
<bean id= "myProductDao " class= "product.ProductDaoImpl ">
<property name= "sessionFactory " ref= "mySessionFactory1 "/>
</bean>
<bean id= "myInventoryDao " class= "product.InventoryDaoImpl ">
<property name= "sessionFactory " ref= "mySessionFactory2 "/>
</bean>
<bean id= "myProductServiceTarget " class= "product.ProductServiceImpl ">
<property name= "productDao " ref= "myProductDao "/>
<property name= "inventoryDao " ref= "myInventoryDao "/>
</bean>
<bean id= "myProductService "
class= "org.springframework.transaction.interceptor.TransactionProxyFactoryBean ">
<property name= "transactionManager " ref= "myTxManager "/>
<property name= "target " ref= "myProductServiceTarget "/>
<property name= "transactionAttributes ">
<props>
<prop key= "increasePrice* "> PROPAGATION_REQUIRED </prop>
<prop key= "someOtherBusinessMethod "> PROPAGATION_REQUIRES_NEW </prop>
<prop key= "* "> PROPAGATION_SUPPORTS,readOnly </prop>
</props>
</property>
</bean>
</beans>
本文展示了如何使用Spring框架配置两个不同的数据源,并为每个数据源设置独立的Hibernate Session工厂。通过这种方式可以支持多个数据库实例之间的操作,适用于需要跨库查询或分布式事务的应用场景。

1779

被折叠的 条评论
为什么被折叠?



