1:(通过FileSystemXmlApplicationContext)
通过程序在初始化的时候,导入Bean配置文件applicationContext.xml
ApplicationContext ctx=new FileSystemXmlApplicationConte( "classpath:applicationContext.xml");
BaseDAO baseDAO=(BaseDAO) ctx.getBean( "baseDAO ");
2:(通过WebApplicationContextUtil)
在web.xml配置了applicationContext.xml自动加载
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContex(request.getSession().getServletContext());
BaseAction baseAction=(BaseAction) ctx.getBean( "baseAction ");
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext(); 另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出WebApplicationContext 对象:WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
3:(通过ContextLoaderListener)
在web.xml配置了applicationContext.xml自动加载
WebApplicationContext context = ContextLoaderListener.getCurrentWebApplicationContext();
BaseDelegate baseDelegate = (BaseDelegate) context.getBean("baseDelegate");