你要尝试做的将使每个实例Servlet都有其自己的
ApplicationContext实例。也许这就是你想要的,但我对此表示怀疑。一个
ApplicationContext应该是唯一的应用程序。
进行此操作的适当方法是在中设置你
ApplicationContext的
ServletContextListener。
public class SpringApplicationContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); sce.getServletContext().setAttribute("applicationContext", ac); } ... // contextDestroyed}现在,你所有的servlet都可以
ApplicationContext通过
ServletContext属性访问相同的servlet 。
@Overridepublic void init(ServletConfig config) throws ServletException { super.init(config); ApplicationContext ac = (ApplicationContext) config.getServletContext().getAttribute("applicationContext"); this.apiData = (ApiData)ac.getBean("apiData"); this.apiLogger = (ApiLogger)ac.getBean("apiLogger");}


