|  | @@ -0,0 +1,45 @@
 | 
	
		
			
				|  |  | +package com.kmall.common.listener;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.alibaba.druid.proxy.DruidDriver;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.sql.Driver;
 | 
	
		
			
				|  |  | +import java.sql.DriverManager;
 | 
	
		
			
				|  |  | +import java.sql.SQLException;
 | 
	
		
			
				|  |  | +import java.util.Enumeration;
 | 
	
		
			
				|  |  | +import javax.servlet.ServletContextEvent;
 | 
	
		
			
				|  |  | +import javax.servlet.ServletContextListener;
 | 
	
		
			
				|  |  | +import javax.servlet.annotation.WebListener;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * @author huangyq
 | 
	
		
			
				|  |  | + * @version 1.0
 | 
	
		
			
				|  |  | + * 2019-02-28 15:00
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +@WebListener
 | 
	
		
			
				|  |  | +public class ContextFinalizer implements ServletContextListener {
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void contextDestroyed(ServletContextEvent sce) {
 | 
	
		
			
				|  |  | +        Enumeration<Driver> drivers = DriverManager.getDrivers();
 | 
	
		
			
				|  |  | +        Driver d = null;
 | 
	
		
			
				|  |  | +        while (drivers.hasMoreElements()) {
 | 
	
		
			
				|  |  | +            try {
 | 
	
		
			
				|  |  | +                d = drivers.nextElement();
 | 
	
		
			
				|  |  | +                DriverManager.deregisterDriver(d);
 | 
	
		
			
				|  |  | +                System.out.println(String.format("ContextFinalizer:Driver %s deregistered", d));
 | 
	
		
			
				|  |  | +            } catch (SQLException ex) {
 | 
	
		
			
				|  |  | +                System.out.println(String.format("ContextFinalizer:Error deregistering driver %s", d) + ":" + ex);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +//        try {
 | 
	
		
			
				|  |  | +//            DruidDriver.getInstance().resetStat().shutdown();
 | 
	
		
			
				|  |  | +//        } catch (InterruptedException e) {
 | 
	
		
			
				|  |  | +//            System.out.println("ContextFinalizer:SEVERE problem cleaning up: " + e.getMessage());
 | 
	
		
			
				|  |  | +//            e.printStackTrace();
 | 
	
		
			
				|  |  | +//        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void contextInitialized(ServletContextEvent sce) {
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |