文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1. 初始化
spring-mvc 的核心便是 DispatcherServlet,所以初始化也是围绕其展开的。类图:

Servlet 标准定义了 init 方法是其生命周期的初始化方法。
HttpServletBean.init:
@Override
public final void init() throws ServletException {
// Set bean properties from init parameters.
PropertyValues pvs = new ServletConfigPropertyValues(getServletConfig(), this.requiredProperties);
//包装 DispatcherServlet,准备放入容器
BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(this);
//用以加载 spring-mvc 配置文件
ResourceLoader resourceLoader = new ServletContextResourceLoader(getServletContext());
bw.registerCustomEditor(Resource.class, new ResourceEditor(resourceLoader, getEnvironment()));
//没有子类实现此方法
initBeanWrapper(bw);
bw.setPropertyValues(pvs, true);
// Let subclasses do whatever initialization they like.
initServletBean();
}
主要逻辑一目了然。注意 setPropertyValues 方法会导致对 DispatcherServlet 相关 setter 方法的调用,所以当进行容器初始化时从 init-param 中读取的参数已被设置到 DispatcherServlet 的相关字段(Field) 中 。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论