今天呢,想了一下生命周期的东西,想出了五个生命周期,待我慢慢说来。
第一个呢
**
spring bean 的生命周期
**:
1.Spring对bean进行实例化,实例化构造函数构造对象 instantiate
2.装配为属性赋值 populateproperties
3.回调
4.初始化(init-method=" ")
5.就绪
6.销毁(destroy-method=" ")
Spring 中bean 的生命周期短暂吗?
在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线程的程序,就必须注意安全(Thread-safe)的议题,防止多个线程同时存取共享资源所引发的数据不同步问题。
spring mvc 生命周期:
1.dispatcherServlet会初始化HandlerMapping(请求到各个Controller处理器的映射)
2.dispatcherServlet会初始化HandlerAdapter(调用Controller里需要被执行的方法)
3.dispatcherServlet会初始化handlerExceptionResolver(有异常抛出,会交给它来进行异常处理)
4.dispatcherServlet会初始化ViewResolver(把Controller中调用返回值最终包装成ModelAndView,
如果view是一个字符串,它就负责处理这个字符串并返回一个真正的View,如果view是一个真正的View则不会交给它处理)
这个图片是自己画的,见怪勿怪哈!嘿嘿
**
servlet 生命周期:
**
1.Servlet 通过调用 init () 方法进行初始化。
2.Servlet 调用 service() 方法来处理客户端的请求。
3.Servlet 通过调用 destroy() 方法终止(结束)也就是销毁。
4.最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的
**
session 的生命周期:
**
Session存储在服务器端,Sessinon在用户访问第一次访问服务器时创建,
需要注意只有访问JSP、Servlet等程序时才会创建Session,
只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。
用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session"活跃(active)"了一次。
Cookie 的生命周期问题:
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,
cookie就消失了。cookie一般不保存在硬盘上而是保存在内存里
设置Cookie对象的有效时间, setMaxAge()方法便可以设置Cookie对象的有效时间
cookie.setmaxage设置为0时,会马上在浏览器上删除指定的cookie
cookie.setmaxage设置为-1时,代表关闭当前浏览器即失效。
小小的总结一下,应该还好理解吧。