1. 程式人生 > >SpringMVC+MyBatis+C3P0配置出錯(解決方案)

SpringMVC+MyBatis+C3P0配置出錯(解決方案)

一般我們使用spring配置dataSource的時候會用到這樣的配置

<bean id="dataSource" class="com.mchange.v2.c3p0.C3P0PooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql:///warehouse?characterEncoding=utf8"/>
        <property name
="user" value="root"/> <property name="password" value="123"/> </bean>

在一次專案執行中出現瞭如下問題
這是報錯資訊
在大佬的幫助下定位到了
Annotation-specified bean name ‘c3P0PooledDataSourceMBean’ for bean class [com.mchange.v2.c3p0.mbean.C3P0PooledDataSourceMBean] conflicts with existing, non-compatible bean definition of same name and class [com.mchange.v2.c3p0.jboss.C3P0PooledDataSourceMBean]
這句話
發現是建立c3p0的bean的時候建立了mbean 和jboss兩個bean進而去找了jar包的資訊
發現jar包中
jar包中的資訊


兩個C3P0PooledDataSource的class檔案,由此發現平時的c3p0配置中class="com.mchange.v2.c3p0.C3P0PooledDataSource"會導致產生兩個c3p0的bean導致衝突,所以應該將這條配置資訊改成<bean id="dataSource" class="com.mchange.v2.c3p0.mbean.C3P0PooledDataSource">這樣,就能避免衝突