spring mvc中DispatcherServlet中init方法何时运行?
DispatcherServlet中init方法运行时刻分享
- 容器启动时(预加载):
- 如果在`web.xml`或使用注解配置`<load-on-startup>`元素
且其值为非负整数,
则`DispatcherServlet`
在容器启动时就会被实例化和初始化
`init` 方法也会立即执行。
- 这种方式称为预加载
确保`DispatcherServlet`
在应用程序启动时就准备好处理请求。
- 首次请求时(延迟加载):
- 默认情况下
`DispatcherServlet`是
在第一次接收到请求时被实例化和初始化的。
`init` 方法会在第一个请求到达时被调用。
- 这种方式称为延迟加载
可减少应用程序启动时间
但第一个请求到来时会有短暂的延迟。
配置示例
使用web.xml配置
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup> <!-- 预加载 -->
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
使用注解配置
@WebServlet(urlPatterns = "/*", loadOnStartup = 1) // 预加载
public class MyDispatcherServlet extends DispatcherServlet {
// 自定义逻辑
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


