什么时候调用DispatcherServlet的onRefresh方法?

时间:2018-08-04 14:50:21

标签: spring-mvc servlets

何时调度DispatcherServlet的onRefresh方法?

1 个答案:

答案 0 :(得分:0)

DispatcherServlet extends FrameworkServlet
FrameworkServlet extends HttpServletBean
HttpServletBean extends HttpServlet
  • HttpServletBean覆盖GenericServlet的init()方法,在该方法中,它调用被FrameworkServlet覆盖的initServletBean()方法

  • 在FrameworkServlet的initServletBean()方法中,它调用initWebApplicationContext()方法

  • 在该方法中,它检查webApplicationContext是否为ConfigurableWebApplicationContext的实例
  • 如果是,它将调用configureAndRefreshWebApplicationContext()方法
  • 在webApplicationContext上调用刷新方法
  • 最后在AbstractApplicationContext中查看refresh()方法的实现,它调用finishRefresh()方法
  • 在该方法中,它发布ContextRefreshedEvent
  • 在FrameworkServlet中,存在实现ApplicationListener的私有类ContextRefreshListener
  • 此类的onApplicationEvent()方法调用FrameworkServlet的onApplicationEvent()方法
  • 在该方法中,它调用onRefresh方法,该方法被DispatcherServlet覆盖