解决方案 »

  1.   

        同样的配置,我在WEB里请求就会出现上面这种情况,如果在一个main方法里做测试,数据库连接使用完成后就会自动关闭。
      

  2.   

    看配置用的是DBCP连接池,DBCP我用的是commons-dbcp没有出过问题,没有用过alibaba的。
    这是我用的
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
      

  3.   

    这个是需要理解WEB程序的生命周期的,WEB程序里每次请求结束并不意味着程序停止运行。也就是说DataSource的线程池没有关闭 - - 所以DataSource管理的Connection为关闭。
    而你通过main方法虚拟的运行环境(没有特殊设置的话)在main方法结束后会停止DataSource用于维护Connection的线程池,所以DataSource会在线程终止时关闭自己维护的Connection。
    你可以在main方法的sqlConnection关闭后Thread.sleep(5000)试试,看看这这期间Connection并没有关闭,而是退出main方法后关闭的。