<listener> <listener-class>com.listener.TestApplicationContextLoaderListener</listener-class> </listener>
public class TestApplicationContextLoaderListener implements ServletContextListener{
@Override
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.out.println("调用:TestApplicationContextLoaderListener11");
TestApplicationContext.initTspApplicationContext(WebApplicationContextUtils.getRequiredWebApplicationContext(servletcontextevent.getServletContext()));
}
@Override
public void contextInitialized(ServletContextEvent servletcontextevent) {
System.out.println("调用:TestApplicationContextLoaderListener22");
//TestApplicationContext.initTspApplicationContext(WebApplicationContextUtils.getRequiredWebApplicationContext(servletcontextevent.getServletContext()));
//或这样也可以
ApplicationContext factory = new ClassPathXmlApplicationContext("classpath*:applicationContext-*.xml");
TestApplicationContext.initTspApplicationContext(factory);
}
}
import org.springframework.context.ApplicationContext;
public class TestApplicationContext {
private static ApplicationContext _applicationContext;
public static void initTspApplicationContext(
ApplicationContext applicationContext) {
_applicationContext = applicationContext;
}
public static Object getBean(String beanid) {
Object bean = null;
if (null == _applicationContext) {
throw new RuntimeException("应用上下文未正常初始化。");
}
try {
bean = _applicationContext.getBean(beanid);
} catch (Exception e) {
e.printStackTrace();
}
return bean;
}
}
@RequestMapping(value = "/getBean.do", method = RequestMethod.GET ) public void getBean(HttpServletRequest request){ //获取类的名字 String objName = this.getClass().getName(); //返回bean对象引用 TestBean cacheManager = (TestBean)TestApplicationContext.getBean("testBean"); cacheManager.refBean(); }
<bean id="testBean" class="com.service.TestBean"> </bean>