springbootweb启动流程

清箫 清箫     2023-02-23     428

关键词:

1.        配置Beans源。

2.        推测是否是Web环境(只有环境中同时有Servlet和ConfigurableWebApplicationContext才能算是Web环境)。

3.        寻找ApplicationContextInitializer接口的实现类,并生成实例,然后按@Order排序。

4.        寻找ApplicationListener接口的实现类,并生成实例,然后按@Order排序。

5.        推测main方法所在的主类。

6.        寻找SpringApplicationRunListener接口的实现,并生成实例。要求SpringApplicationRunListener接口的实现必须有一个构造函数按顺序接收SpringApplication和String[]参数。然后执行SpringApplicationRunListener的starting()方法。

7.        注册CommandLinePropertySource,使命令行输入参数变成ApplicationArguments。

8.        利用SpringApplicationRunListeners和ApplicationArguments配置ConfigurableEnvironment(Servlet环境还是标准环境),再调用SpringApplicationRunListeners的environmentPrepared方法。

9.        执行SpringApplicationBannerPrint,输出Spring的Logo。

10.    创建ApplicationContext(可以根据环境自动配置,也可以自己配置),Web默认使用AnnotationConfigEmbeddedWebApplicationContext,其他使用AnnotationConfigApplicationContext。然后执行ApplicationContext.setEnvironment方法。

11.    注入beanNameGenerator,并填充ApplicationContext的ResourceLoader和ClassLoader。

12.    执行所有ApplicationContextInitializer实例的initialize方法。

13.    输出当前context中环境的ActiveProfile。

14.    注入springApplicationArguments(来源是第7步的ApplicationArguments。)和springBootBanner(第9步的SpringApplicationBannerPrint实例)。

15.    调用SpringApplicationRunListener的contextPrepared()方法。

16.    注入springApplicationArguments和springBootBanner单例对象。

17.    加载所有source中指定的单例Beans,并刷新ApplicationContext。ApplicationContext在刷新完成之后,调用finishRefresh()方法,启动内置Tomcat服务器。

18.    注册Servlet和Filter的映射关系。

19.    根据Controller上的@RequestMapping调用RequestMappingHandlerAdapter注册映射Handler和URL的映射关系;其他调用SimpleUrlHandlerMapping映射URL和资源的映射关系。

20.    默认8080端口监听请求。

21.    触发所有的ApplicationRunner和CommandLineRunner Beans。

22.    执行所有SpringApplicationRunListener的finished()方法。

springbootweb-启动run()

接上一篇在创建SpringApplication之后,调用了run()方法.publicConfigurableApplicationContextrun(String...args){  //定时器,监控启动时间StopWatchstopWatch=newStopWatch();stopWatch.start();ConfigurableApplicationContextcontext=nul 查看详情

springboot学习记第一个springbootweb服务

工具IDEA一、构建项目  1、选择SpringInitializr    2、填写项目信息    3、勾选webService    4、勾选Thymeleaf    5、项目建立完成,启动类自动生成  二、写个Controller    启动服务。  浏览器访问/hello接... 查看详情

docker启动java程序

目录创建一个简单的Springbootweb项目以上一个简单web项目建好了,下面我们通过docker来运行这个demo项目展望创建一个简单的Springbootweb项目idea工具创建Springbootweb项目,因为是测试,一直next就行。写一个testAPI,用来访问,服务端... 查看详情

springbootweb自己的整理

1.项目如图所示该main方法类就是启动类启动项目的项目自己集成tomcat2.Controller控制层配置文件application.ymldatasource和jpa相当于公共的配置类的赋值3.aop和springAOP差不多就是xml不需要配置4.统一异常处理统一就是一样的格式这里面的... 查看详情

从0到1构建springbootweb应用镜像并使用容器部署

文章目录​​一、生成镜像的两种方法​​​​1.1、使用commit生成镜像​​​​1.1.1、拉取Centos基础镜像​​​​1.1.2、启动Centos容器并安装Go​​​​1.1.3、commit生成新镜像​​​​1.1.4、使用新镜像验证Golang环境​​​​1.2、... 查看详情

春季启动应用程序中的 BIRT

...布时间】:2015-11-1105:51:32【问题描述】:我需要在现有的SpringBootWeb应用程序中创建报告功能(函数)。建议是使用BIRT,我可以将它与springbootweb应用程序集成。我找到了下面的文章,并且能够在SpringBoot启动项目中运行报告(使... 查看详情

javaweb010--springbootweb综合案例(部门管理&员工管理)

目录SpringBootWeb综合案例一、准备工作1、需求说明&环境搭建①、需求说明②、环境搭建2、开发规范①、接口文档②、开发规范--Restful(表述性状态转换)③、开发规范--统一响应结果④、开发流程二、部门管理1、查询... 查看详情

从0到1构建springbootweb应用镜像并使用容器部署(代码片段)

文章目录一、生成镜像的两种方法1.1、使用commit生成镜像1.1.1、拉取Centos基础镜像1.1.2、启动Centos容器并安装Go1.1.3、commit生成新镜像1.1.4、使用新镜像验证Golang环境1.2、使用Dockerfile生成镜像二、基于Dockerfile生成一个springboot镜像2.... 查看详情

springbootweb项目中修改服务器端口的配置属性是

一、修改默认配置例1、springboot开发web应用的时候,默认tomcat的启动端口为8080,如果需要修改默认的端口,则需要在application.properties添加以下记录:server.port=8888二、自定义属性配置在application.properties中除了可以修改默认配置,... 查看详情

14springbootweb开发

1、静态资源映射的处理,静态资源文件可以放在四个位置:类路径下的MATE-INFO/resources,/resources/resources,resources/static, resources/publice,2、如何访问静态资源比如:http://localhost:8080/asserts/css/signin.css3、欢迎页或者首页的配置,也... 查看详情

springbootweb开发

  要解决的问题:导入静态资源首页想办法定制这里面写不了jsp页面,我们要学模板引擎(Thymeleaf)来解决装配扩展springmvc增删改查怎么做拦截器国际化静态资源  首先,我们搭建一个普通的SpringBoot项目,回顾一... 查看详情

第一个springbootweb程序

需要的环境和工具:1、Eclipse2、Java环境(JDK1.7或以上版本)3、Maven3.0+(Eclipse已经内置了) 写个HelloSpring:1、新建一个Maven项目 选择maven-archetype-quickstart  删除项目中的test,这个我们用不到, 刚刚建好的项目如... 查看详情

012-springbootweb创建请求使用jspfreemarker,tomcatjetty

一、项目搭建同:http://www.cnblogs.com/bjlhx/p/8324971.html1)新建maven项目→使用默认配置即可定义好项目名称等2)修改jdk版本<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.c 查看详情

springbootweb开发——javaee笔记

相关配置依赖参考:创建SpringBoot项目——JavaEE笔记利用Ajax请求获取数据ajax简单来说,可以让Web页面部分数据进行更新绑定TestController.java文件User.java实体类Test02.html页面测试网址:http://localhost:8080/springboot/gethtml2 查看详情

springbootweb开发——javaee笔记

相关配置依赖参考:创建SpringBoot项目——JavaEE笔记利用Ajax请求获取数据ajax简单来说,可以让Web页面部分数据进行更新绑定TestController.java文件User.java实体类Test02.html页面测试网址:http://localhost:8080/springboot/gethtml2 查看详情

springboot-springbootweb开发

  1.导入静态资源在WebMvcAutoConfiguration.java中找到  webjars方式-->classpath:/META-INF/resources/webjars/目录是由于导入jQuery,bootstrap等maven坐标后,才有的目录结构。这些组件原本就是静态资源,所以会先从这个路径获取静态... 查看详情

springbootweb静态资源映射(代码片段)

文章目录静态资源映射规则自定义静态资源映射规则静态资源映射规则“/**”访问当前项目任何资源,全部找静态资源的文件夹进行映射静态资源的文件夹包括:"classpath:/META-INF/resources/","classpath:/resources/","classp... 查看详情

01用idea创建springbootweb项目(代码片段)

目录一、IDEA新建springbootweb项目1、操作:Idea-->File-->New-->Project2、填写项目信息3、创建web项目,勾选Web需要的依赖4、设置项目名称Projectname和工程保存路径Projectlocation二、写一个测试页面,测试一下,HelloWor... 查看详情