如何避免覆盖sqlSessionFactory

时间:2013-03-11 22:04:41

标签: spring mybatis

我有一个导入2个罐子的网络应用程序。

两个罐子都使用MyBatis和Spring

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:persistence/ormConfig-content-repository.xml" />  
    <property name="mapperLocations" value="classpath*:persistence/content-repository-mapper/*.xml" /> 
</bean>

在这两种情况下,我使用的是使用sqlSessionFactory的SqlSessionDaoSupport

部署应用程序时出现问题

的web.xml:

<context-param>
<description>Spring config file</description>
<param-name>contextConfigLocation</param-name>
<param-value>
    classpath:jar1_conf.xml,
    classpath:jar2_conf.xml
</param-value>

基本上第二个jar中定义的sqlSessionFactory bean会覆盖第一个jar中定义的bean。

我该怎么办? 请帮忙

1 个答案:

答案 0 :(得分:0)

简单的答案是无法帮助你的是Spring的行为。您基本上是创建一个ApplicationContext并加载两个具有相同名称的bean,因此将覆盖另一个。解决方案是为您的应用程序创建多个ApplicationContext。