SpringBoot原理简介说明
下文笔者将讲述SpringBoot的原理相关说明,如下所示:
可快速的将一些常用的第三方依赖整合
SpringBoot开发简化XML配置
全部采用注解形式
内置Http服务器(Jetty和Tomcat)
最终以java应用程序进行执行
整合SpingMVC框架
当你添加了相应的starter模块
就相当于添加了相应的所有必须的依赖包
包括spring-boot-starter(这是Spring Boot的核心启动器,包含了自动配置、日志和YAML)
spring-boot-starter-test(支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块)
spring-boot-starter-web(支持全栈式Web开发,包括Tomcat和spring-webmvc)等相关依赖
SpringBoot的三种启动方式
只需加上@SpringBootApplication注解
SpringBoot简介说明
SpringBoot是一个快速开发框架可快速的将一些常用的第三方依赖整合
SpringBoot开发简化XML配置
全部采用注解形式
内置Http服务器(Jetty和Tomcat)
最终以java应用程序进行执行
使用SpringBoot开发 可简化Spring应用的创建、运行、调试、部署 采用SpringBoot框架开发,我们可专注于业务代码的应用开发,无需过多的处理XML的配置
SpringBoot的核心原理
SpringBoot核心通过Maven继承依赖关系快速整合第三方框架<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <!-- SpringBoot 整合SpringMVC --> <!-- 我们依赖spring-boot-starter-web能够帮我整合Spring环境 原理通过Maven子父工程 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>springboot通过引用spring-boot-starter-web依赖
整合SpingMVC框架
当你添加了相应的starter模块
就相当于添加了相应的所有必须的依赖包
包括spring-boot-starter(这是Spring Boot的核心启动器,包含了自动配置、日志和YAML)
spring-boot-starter-test(支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块)
spring-boot-starter-web(支持全栈式Web开发,包括Tomcat和spring-webmvc)等相关依赖
SpringMVC无配置文件(纯Java)完全注解化实现SpringBoot框架,Main函数启动
例:SpringBoot的三种启动方式
@SpringBootApplication public class Application { //方式一 public static void main(String[] args) { SpringApplication.run(Application.class, args); } //方式二 public static void main(String[] args) { SpringApplication app = new SpringApplication(MySpringConfiguration.class); app.run(args); } //方式三 public static void main(String[] args) { new SpringApplicationBuilder() .sources(Parent.class) .child(Application.class) .run(args); } }
SpringBoot的启动流程
springboot编写的代码程序只需加上@SpringBootApplication注解
@SpringBootApplication注解实际上是 @Configuration配置类,@ComponentScan类,包扫描, @EnableAutoConfiguration根据需求自动加载相关的bean这三个注解
SpringBoot的启动流程如下
1. 初始化监听器,以及添加到SpringApplication的自定义监听器 2. 发布ApplicationStartedEvent事件,如果想监听ApplicationStartedEvent事件, 你可以这样定义:public class ApplicationStartedlistener implements ApplicationListener,然后通过SpringApplication.addListener(..)添加进去即可 3. 装配参数和环境,确定是web环境还是非web环境 4. 装配完环境后,就触发ApplicationEnvironmentPreparedEvent事件 5. 如果SpringApplication的showBanner属性被设置为true,则打印启动的Banner 6. 创建ApplicationContext,会根据是否是web环境,来决定创建什么类型的ApplicationContext 7. 装配Context的环境变量,注册Initializers、beanNameGenerator等 8. 发布ApplicationPreparedEvent事件 9. 注册springApplicationArguments、springBootBanner,加载资源等 10. 遍历调用所有SpringApplicationRunListener的contextLoaded()方法 11. 调用ApplicationContext的refresh()方法,装配context beanfactory等非常重要的核心组件 12. 查找当前ApplicationContext中是否注册有commandlinerunner,如果有,则遍历执行它们 13. 发布ApplicationReadyEvent事件,启动完毕,表示服务已经可以开始正常提供服务了。通常我们这里会监听这个事件来打印一些监控性质的日志,表示应用正常启动
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。