package com.doumee; 
 | 
import javax.servlet.ServletContextEvent; 
 | 
import javax.servlet.ServletContextListener; 
 | 
import javax.servlet.annotation.WebListener; 
 | 
import java.sql.Driver; 
 | 
import java.sql.DriverManager; 
 | 
import java.sql.SQLException; 
 | 
import java.util.Enumeration; 
 | 
import com.mysql.cj.jdbc.AbandonedConnectionCleanupThread; 
 | 
  
 | 
//@WebListener 
 | 
public class ContextFinalizer implements ServletContextListener{ 
 | 
  
 | 
    public void contextInitialized(ServletContextEvent sce) {} 
 | 
  
 | 
    public void contextDestroyed(ServletContextEvent sce) { 
 | 
        Enumeration<Driver> drivers = DriverManager.getDrivers(); 
 | 
        Driver d = null; 
 | 
        while (drivers.hasMoreElements()) { 
 | 
            try { 
 | 
                d = drivers.nextElement(); 
 | 
                DriverManager.deregisterDriver(d); 
 | 
            } catch (SQLException ex) { 
 | 
            } 
 | 
        } 
 | 
        try { 
 | 
            // 注意:mysql8版本的jar好像shutdown方法私有了,只能调用checkedShutdown或uncheckedShutdown 
 | 
            AbandonedConnectionCleanupThread.checkedShutdown(); 
 | 
        } catch ( Exception e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
    } 
 | 
} 
 |