Spring MVC初始化过程如下图所示。
Spring MVC有自己的ApplicationContext,这个ApplicationContext只包含@Controller。其它的Spring Bean如@Service,@Resource,@Component等存在于Root ApplicationContext里。Root ApplicationContext是Spring MVC ApplicationContext的父ApplicationContext,Spring MVC ApplicationContext可以称作是子ApplicationContext,这一步是在FrameworkServlet的createWebApplicationContext方法中设置的。如果@Controller引用了@Service,@Controller会从Root ApplicationContext找到对应的@Service,但是Root ApplicationContext不能从子ApplicationContext查找Bean。
Spring MVC处理HTTP请求的过程如下图所示。
推荐资料:
2、SpringMVC深度探险(一) —— SpringMVC前传
3、SpringMVC深度探险(二) —— SpringMVC概览
4、SpringMVC深度探险(三) —— DispatcherServlet与初始化主线
5、SpringMVC深度探险(四) —— SpringMVC核心配置文件详解