package com.dy.common.webListener; import com.dy.common.util.Config; import com.dy.common.util.ConfigProperties; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletContextEvent; import jakarta.servlet.ServletContextListener; import lombok.extern.slf4j.Slf4j; import java.io.InputStream; import java.net.URL; @Slf4j public class ConfigListener implements ServletContextListener { // public static final String CONFIGFILENAMES = "configFileNames" ; @Override public void contextInitialized(ServletContextEvent event) { ServletContextListener.super.contextInitialized(event); ServletContext con = event.getServletContext(); this.init(con); } @Override public void contextDestroyed(ServletContextEvent event) { ServletContextListener.super.contextDestroyed(event); } /** * 解析系统配置 * @return */ private boolean init(ServletContext con){ try { InputStream in = this.getClass().getResourceAsStream("/config/config.properties") ; if(in == null){ throw new Exception("未找到配置/config/config.properties属性配置文件名称!") ; } ConfigProperties.init(in, false); String configFileName = con.getInitParameter(CONFIGFILENAMES); if(configFileName == null || configFileName.trim().equals("")){ throw new Exception("未配置config类文件名称!") ; } String confs[] = configFileName.split(","); String conf = null ; for(int i = 0 ; i < confs.length ; i++){ conf = confs[i].trim() ; if(conf != null && !conf.equals("")){ URL configFileURL = null; configFileURL = ConfigListener.class.getResource("/config/" + conf); if(configFileURL == null){ configFileURL = ConfigListener.class.getResource("/" + conf); } Config.getInstance().init(configFileURL) ; } } return true; } catch (Exception e) { System.out.println("系统启动时,初始化配置出错 !"); System.out.println(e.getMessage()); e.printStackTrace(); return false; } } }