我正在开发一个Web应用程序,我需要两个DataSource根据我的需求连接两个差异数据库。一个DataSource将使用Spring + JPA框架,另一个DataSource使用Spring + MyBatis框架。可以在Spring配置中配置两个DataSoure吗?
0
A
回答
1
是的,你可以建议管理从春天和从applicationContext获得。
<bean class="org.apache.tomcat.jdbc.pool.DataSource" id="dataSource" >
<property name="driverClassName" value="${database.driverClassName}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
<bean class="org.apache.tomcat.jdbc.pool.DataSource" id="dataSourceOrderDetail" >
<property name="driverClassName" value="${database.driverClassName}"/>
<property name="url" value="${database.url.orderdetail}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</bean>
只需要有ID的不同的名称,要恰当地注入
检查this检讨如何能春季ibatis的整合,然后使用数据源豆
配置豆或者,如果您要使用datasource-ds.xml,只需将两个datasource xml文件放在应用程序上下文中的lib文件夹中,如果你使用的是jboss或tomcat。
UPDATE
<jpa:repositories base-package="com.staples.sa.pricemart.repository.pag"
entity-manager-factory-ref="entityManagerFactory" />
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
<qualifier value="pagTransactionManager" />
</bean>
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="dataSource" ref="dataSource" />
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
</bean>
<jpa:repositories base-package="com.staples.sa.pricemart.repository.orderdetail"
entity-manager-factory-ref="entityManagerFactoryOrderDetail" />
<bean id="transactionManagerOrderDetail" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactoryOrderDetail" />
<qualifier value="orderDetailTX" />
</bean>
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactoryOrderDetail">
<property name="persistenceUnitName" value="persistenceUnitOrderDetail" />
<property name="dataSource" ref="dataSourceOrderDetail" />
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
</bean>
<!-- -->
的persistence.xml需要这个样子。 (需要完成XML配置)
<persistence-unit name="persistenceUnit"
transaction-type="RESOURCE_LOCAL">
而且
<!-- Add the persistence context for OrderDetail -->
<persistence-unit name="persistenceUnitOrderDetail"
transaction-type="RESOURCE_LOCAL">
0
您可以为通过声明数据源豆,不同的ID在Spring上下文喜欢配置尽可能多的数据库和 注入相应的属性从属性文件。如果两个数据库不同,那么您处于分布式事务的范围内,并且您必须配置可以与JTA一起运行的Spring transaction manager。另外值得注意的是,Spring事务管理器仅仅是一个抽象概念,它需要配置外部JTA事务 管理器(如Bitrionix/Atomikos),或者如果在EE应用服务器上部署,则可以在JNDI注册中心查找事务管理器。然后,当您标记事务边界(可能使用Spring Transactional注释)时,Spring将自动协调事务。
0
下面是示例代码为您
class Main {
public static void main(String args[]) throws Exception {
ApplicationContext ac = new ClassPathXmlApplicationContext("context.xml", Main.class);
DataSource dataSource = (DataSource) ac.getBean("dataSource");
DataSource mysqlDataSource = (DataSource) ac.getBean("mysqlDataSource");
的context.xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@oracle.devcake.co.uk:1521:INTL"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
<bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://dbhost-prospring-psql/prospring"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"/>
</bean>
<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"/>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
相关问题
- 1. 我的iPhone可以配置两个配置文件吗?
- 2. 可以在couchdb配置中设置reduce_limit = false配置吗?
- 3. 一个Spring PropertyPlaceholderConfigurer可以配置另一个吗?
- 4. 我们可以重写在另一个配置中的一个xml配置中声明的spring bean吗?
- 5. 在JBoss中我可以配置一个“共享库”位置吗?
- 6. 我们可以配置Spring根据请求的范围来配置属性吗?
- 7. Spring支持JSON配置吗?
- 8. 配置Spring Cloud配置
- 9. 我可以在配置文件中设置GPS配置的更改吗?
- 10. Spring MVC请求映射,这可以动态/可配置吗?
- 11. 如何在基于Java的安全配置的Spring Security中配置两个formLogin?
- 12. IIS 7配置 - 一切都可以通过web.config配置吗?
- 13. 在Spring 3.1中配置JDO?
- 14. 在Spring中配置Hibernate sessionFactory
- 15. 多个构建配置可以共享一个配置转换吗?
- 16. 我可以在web.config中放置Remoting配置吗?
- 17. 你可以在log4net配置中设置属性值吗?
- 18. 我可以使用Spring 3.1.1配置图块3.0吗?
- 19. 你可以通过编程来配置Spring-Security吗?
- 20. Spring配置文件可以选择@PropertySources吗?
- 21. spring bean配置
- 22. Spring templateResolver配置
- 23. Spring配置
- 24. Spring配置
- 25. spring配置
- 26. LightAdmin Spring配置
- 27. Spring ReloadableResourceBundleMessageSource配置
- 28. Thymeleaf Spring配置
- 29. Maven - 我可以在配置文件定义中引用配置文件ID吗?
- 30. 在Spring中,如何配置java.util.Logging以使其可以自动装配?
你能告诉我please.So怎么样春天的交易,它可以处理两个2个数据源。 – 9ine
您需要针对不同的数据库拥有不同的事务bean。 –
@PradeepKrKaushal是的,我认为是。 – 9ine