自己重写一个ContextLoaderListener ,然后配置在web.xml替代ContextLoaderListener
public class SpringLoaderListener extends ContextLoaderListener { @Override public void contextInitialized(ServletContextEvent event) { super.contextInitialized(event); ServletContext context = event.getServletContext(); ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context); SpringContextUtil.setApplicationContext(ctx); } }
后面就是一个操作SpringContextUtil
public class SpringContextUtil { private static ApplicationContext context; public static void setApplicationContext(ApplicationContext acx) { context = acx; } public static ApplicationContext getApplicationContext() { return context; } public static Object getBean(String name) throws BeansException { return context.getBean(name); } public static Object getBean(String name, Class requiredType) throws BeansException { return context.getBean(name, requiredType); } public static boolean containsBean(String name) { return context.containsBean(name); } public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return context.isSingleton(name); } public static Class getType(String name) throws NoSuchBeanDefinitionException { return context.getType(name); } public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return context.getAliases(name); } }
你可以在servlet里通过该Utils工具方法可以得到你想要的bean,dao或者service 然后就可以操作数据库了