启动过程(详细):
Spring Boot的启动过程主要由以下步骤构成:
1. 首先,SpringApplication类中的run()方法被执行。这个方法是Spring Boot的启动类入口。
2. 然后,SpringApplication类会进行初始化操作,包括配置一些基本的环境变量、资源、构造器和监听器。
3. 接下来,SpringApplication类会创建一个Spring应用程序上下文(ApplicationContext),用于存储和管理Bean对象。这个上下文是整个Spring Boot应用程序的核心。
4. 创建完上下文后,SpringApplication类会加载所有的Spring组件,包括Bean定义、各种插件等。这些组件将在后面的过程中被使用。
5. 在加载完所有组件后,SpringApplication类会扫描项目中的所有类,找出带有@Component、@Service、@Controller等注解的类,并将它们注册到Spring应用程序上下文中。
6. 接着,SpringApplication类会调用context.refresh()方法,完成Bean的实例化、依赖注入等操作。这个阶段也是IoC(控制反转)和AOP(面向切面编程)的实现过程。
7. 当所有组件都加载并初始化完成后,SpringApplication类会发布一个开始运行的事件(ApplicationReadyEvent)。这个事件可以被监听器捕获,用来执行一些特定的操作。
8. 最后,SpringApplication类会启动内置的Servlet容器(如Tomcat),并运行你的Spring Boot应用程序。
启动过程(大概):
启动过程有3个阶段:
1.SpringApplication类的run()方法被执行,进行项目的初始化操作。
2.Spring应用程序上下文(ApplicationContext)创建,加载所有的Spring组件,扫描项目中的所有类,调用context.refresh()方法(刷新),完成Bean的实例化、依赖注入等操作。
3.SpringApplication类通知监听器(执行其他操作),启动内置的Servlet容器(如Tomcat),并运行你的Spring Boot应用程序。
相关思考:
思想:
springboot的启动流程简洁自动化。思想核心就是围绕着Spring应用程序上下文(ApplicationContext)的创建和刷新完成业务代码的实现。在前一个步骤加引导类,在后面加一个启动容器和中间的ApplicationContext就能实现业务功能。
排错:
我们具体代码的错误排查也可以按照这个路径来。因为可能导致错误的原因很多,而且很多报错的原因不在报错的字面意义上,所以我们可以按照这个路径去想是那个地方没有设置到位,只有最后不是类似于插件不支持或者jdk版本不支持的根本性原因相信最后都是可以解决的。
约定大于配置:
大多数的开发环境配置往往是不变的所以很多的配置官方都帮我们进行了自动配置,如果是spring框架那么有很多东西需要我们自己配置才行。设计思想的问题后面在说。