开发者社区 问答 正文

Spring引入两个数据源配置Hibernate-java报错

"

一个项目需要连两个数据库 如下配置报错

<pre class=""brush:java; toolbar: true; auto-links: false;""><!-- ② 定义一个数据源 --> <bean id="dataSource1" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:mysql://192.168.1.200/db1" /> <property name="username" value="root" /> <property name="password" value="1234" /> <property name="initialSize" value="1" /> <property name="maxActive" value="20" /> </bean> <!-- 定义一个db_bbs数据源 --> <bean id="dataSource2" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:mysql://192.168.1.200/db2" /> <property name="username" value="root" /> <property name="password" value="1234" /> <property name="initialSize" value="1" /> <property name="maxActive" value="20" /> </bean>

<!-- 定义Hibernate的Session工厂 -->
<bean id="sessionFactory"
	class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
	<property name="dataSource1" ref="dataSource1" />
	<property name="dataSource2" ref="dataSource2" />
	<property name="packagesToScan">
		<!-- ③-1 扫描基于JPA 注解PO类目录 -->
		<list>
			<value>com.test.model.entity</value>
		</list>
	</property></pre> 
</bean>


 <!-- ④ 定义HibernateTemplate -->
 <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"
 p:sessionFactory-ref="sessionFactory" />
</beans>
"

展开
收起
montos 2020-05-31 16:33:17 516 分享 版权
1 条回答
写回答
取消 提交回答
  • "

    <span style=""font-family:微软雅黑, Verdana, sans-serif, 宋体;line-height:normal;background-color:#FFFFFF;""><span style=""color:#000000;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;line-height:14.65625px;background-color:#F8F8F8;"">看异常是不是sessionFactory的property <span style=""color:#000000;"">dateSource2 没写set/get方法或没写对?


    ######回复 @非技术专家群体 : 歪打正着。。。######回复 @ljiang : 解决了,你没看错,sessionFactory property name后面应该是dataSource######回复 @非技术专家群体 : sorry,没细看,看错######在哪里写dataSource2的set,get 没找见######什么报错信息也要贴出来:)
    ######

    引用来自“红薯”的答案

    什么报错信息也要贴出来:)
    严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
    Error creating bean with name 'testDaoImpl': Injection of autowired dependencies failed; 
    nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.orm.hibernate3.HibernateTemplate com.test.dao.BaseDaoImpl.hibernateTemplate
    Error creating bean with name 'hibernateTemplate' defined in class path resource [test-dao.xml]: 
    Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; 
    Error creating bean with name 'sessionFactory' defined in class path resource [test-dao.xml]: 
    Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException:
    Invalid property 'dateSource2' of bean class [org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean]: 
    Bean property 'dateSource2' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    ###### @南湖船老大 帮忙看看 ######hibernate还真心好久没用了。。。这...貌似一个sessionFactory就只能配置一个dataSource吧, 在dao里注入相应的 sessionFactory才行 吧,你这样 sessionFactory根本就没法在容器里实例化。看下这个 p://zhoujingxian.iteye.com/blog/883642  http://bbs.csdn.net/topics/330179929
    ######我去研究研究,多谢######我靠,还能这样写了, 默认没有两个datasource的支持吧?######没写过,摸索中。。。"
    2020-05-31 16:33:34
    赞同 展开评论