先插一个楼,后期有时间了,再详细描述
Tomcat的web.xml配置好context-param,还有listener后,在调用tomcat的时候就会使用反射生成listener类的对象,然后就会在使用过程中调用initWebApplicationContext方法。从而在这个过程中生成ApplicationContext对象,然后就将他放入ServletContext的map集合中,并将key命名为WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
ServletContext servletContext = req.getServletContext();
ApplicationContext applicationContext = (ApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
UserService userService = applicationContext.getBean("userService", UserService.class);