您要尝试做的将使每个实例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");}


