常见问题:Web/Spring

Posted cielosun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见问题:Web/Spring相关的知识,希望对你有一定的参考价值。

Servlet生命周期

init()初始化阶段

  • Servlet容器加载Servlet(web.xml中有load-on-startup=1;Servlet容器启动后用户首次向Servlet发请求;Servlet类文件被更新后重新装载)
  • Servlet容器创建一个Servlet实例并调用init()方法

service()处理客户端请求阶段

  • 客户发送请求
  • Servlet产生一个新的线程
  • Servlet创建特定于请求的ServletRequest, ServletResponse
  • 调用service()方法对请求进行响应,如HttpServlet的doPost,doGet

destroy()终止阶段

web应用终止/Servlet容器终止运行/Servlet重新装载Servlet实例时,会调用Servlet的destroy()方法。

Spring Bean生命周期

  • Bean实例化
  • 设置对象属性(IOC注入)
  • 检查Aware相关接口并设置相关依赖
  • BeanPostProcess前置处理
  • 检查是否是InitializingBean以决定是否调用afterPropertiesSet
  • 检查是否有自定义的init-method(配置文件中可以定义)
  • BeanPostProcess后置处理
  • 注册Destruction相关回调接口
  • Bean准备就绪
  • 使用
  • 调用DispostbleBean的destroy来销毁Bean
  • 调用定制的销毁方法

以上是关于常见问题:Web/Spring的主要内容,如果未能解决你的问题,请参考以下文章

非Web Spring Context中的ApplicationContextInitializer?

Spring Boot 和 Nginx 集成

如何使用 Spring 和 JPA 设置多个数据源

java web spring challenge01

SFA官方翻译:使用Spring 5引导Web应用程序

使用 Spring 3 来创建 RESTful Web Services