解决方法,新建类并且继承org.apache.commons.dbcp.BasicDataSource类
接着重新close的方法即可。
/** * registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister * Created by alan.luo on 2017/9/5. */ public class BasicDataSourceEx extends BasicDataSource { public BasicDataSourceEx(){ super(); } @Override public synchronized void close() throws SQLException { DriverManager.deregisterDriver(DriverManager.getDriver(url)); super.close(); } }
xml把bean对应的class改成新建的类名就可以了。
<bean id="dataSource" class="com.lanxinbase.system.basic.BasicDataSourceEx" destroy-method="close"> <property name="driverClassName" value="${db.driver}"/> <property name="url" value="${db.url}"></property> <property name="username" value="${db.username}"></property> <property name="password" value="${db.userpasswd}"></property> <property name="initialSize" value="${db.initalsize}"></property> <property name="maxActive" value="${db.maxActive}"></property> <property name="maxIdle" value="${db.maxIdle}"></property> <property name="maxOpenPreparedStatements" value="${db.maxOpens}"></property> <property name="maxWait" value="${db.maxWait}"></property> </bean>