SpringBoot原理简介说明

java-教程王 SpringBoot 发布时间:2022-01-02 21:15:24 阅读数:5694 1
下文笔者将讲述SpringBoot的原理相关说明,如下所示:

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事件,启动完毕,表示服务已经可以开始正常提供服务了。通常我们这里会监听这个事件来打印一些监控性质的日志,表示应用正常启动
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202201/2127.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者