1、SpringBoot生命周期
SpringBoot应用的生命周期,整体上可以分为SpringApplication初始化阶段、SpringApplication运行阶段、SpringApplication结束阶段、SpringBoot应用退出四个阶段。
1.1、SpringApplication初始化阶段
SpringApplication初始化阶段可以分为SpringApplication构造阶段和SpringApplication配置阶段。初始化阶段以发布ApplicationStartingEvent事件为止。
SpringApplication构造阶段
通过SpringApplication构造方法或SpringApplicationBuilder构建SpringApplication对象的过程可以归纳为构造阶段。
SpringApplication配置阶段
SpringApplication对象创建之后,调用set或相关属性设置方法的操作可以归纳为配置阶段。
1.2、SpringApplication运行阶段
SpringApplication运行阶段又可以划分为SpringApplication准备阶段、ApplicationContext启动阶段(refreshContext)、ApplicationContext启动后阶段,以发布ApplicationStartedEvent事件为止。
SpringApplication准备阶段
从运行SpringApplication#run方法(发布ApplicationStartingEvent事件后)到SpringApplication#prepareContext方法(含)属于SpringApplication准备阶段。以发布ApplicationPreparedEvent事件为止。
ApplicationContext启动阶段
SpringApplication#refreshContext方法属于ApplicationContext启动阶段,以发布ContextRefreshedEvent事件为止。
ApplicationContext启动后阶段
从SpringApplication#afterRefresh到发布ApplicationStartedEvent事件为止。
1.3、SpringApplication结束阶段
从发布ApplicationStartedEvent事件(不含)开始到发布发布ApplicationReadyEvent事件或ApplicationFailedEvent为止。
1.4、SpringBoot应用退出阶段
从关闭应用上下文到调用SpringApplication#exit或SpringApplication#handlerFailure或抛出异常错误为止。
4. SSM框架和SpringBoot框架的对比?
一、SSM优缺点应该分开来说的,比如
1.spring 不说了,核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。
2.spring mvc嘛,是对比struts2等mvc框架来说的,不说struts2爆出的那么多安全漏洞,而且是类拦截,所有Action变量共享,同时是filter入口的,而spring mvc是方法拦截,controller独享request response数据,采用的serlvet入口,与spring无缝对接。开发而言,spring mvc更加轻量和低入门。
3.mybatis嘛,看业务场景,主要是mybatis的sql可以由开发者去掌控和调优,相对hibernate等orm框架来说,更加直观。在业务场景比较复杂,sql好多联合关联的情况下,mybatis谁用谁知道。当然缺点就是对sql不熟悉的开发者就不太友好了。
二、 SSM框架和spring boot全家桶相比有哪些优缺点? 这两者对比起来有点奇怪。因为SSM是WEB应用框架,涵盖整个应用层,而spring boot你可以看做一个启动、配置、快速开发的辅助框架,本身针对的是微服务。
springboot 只是为了提高开发效率,是为了提升生产力的:
1.springboot一个应用是一个可执行jar(启动类main方法启动web应用),而不像传统的war,内嵌tomcat容器,可以jar形式启动一个服务,可以快速部署发布web服务,微服务最好不过了。
2.将原有的xml配置,简化为java配置
3.当然结构可能跟一般的ssm有一定区别,但其实主要是在资源文件