> 文章列表 > 第九天springboot篇

第九天springboot篇

第九天springboot篇

    目录

一、什么是springboot?

二、springboot的核心功能 

三、springboot、springmvc和spring的区别

四、SpringBoot的配置文件加载优先级

五、springboot有哪几种读取配置的方式?

六、springboot自动装配流程

七、springboot启动流程


一、什么是springboot?

答:Spring Boot是 Spring 的子项目,他的核心思想是自动装配,通过 Spring Boot开发者可以快速配置 Spring 项目。

二、springboot的核心功能 

           
可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行
内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。
简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。
自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。
提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。

三、springboot、springmvc和spring的区别

1.spring:它提供了多个模块。springIOC、Spring AOP、springmvc等

2.springmvc:
Spring的子项目,主要是controller层的处理,核心有处理器适配器,处理器映射器,视图解析器等

3.Springboot:
Spring 的子项目,他的核心思想是自动装配,通过 Spring Boot开发者可以快速配置 Spring 项目,
引入各种 Spring MVC、Spring  Transaction、Spring AOP、MyBatis 等等框架,
而无需不断重复编写繁重的 Spring 配置,降低了 Spring  的使用成本。

springboot 起步依赖 自动装配 简化配置 加速开发

综上所述:spring是一个基础设施框架,
spring mvc是一个web应用框架,
而spring boot则是一个工具,可以更快速地构建可运行的spring应用程序。

四、SpringBoot的配置文件加载优先级

spring boot应用程序中,配置文件有三种类型:.properties.yml.yaml。其中.yml.yaml是等效的。

bootstrap.yml>bootstrap.properties>application.yml>application.properties

五、springboot有哪几种读取配置的方式?

1.使用Environment接口:environment.getProperty("server.port")获得application.yml中的端口

2.@Value:支持和 @PropertySource 注解一起使用,指定使用的配置文件

3. 使用 @ConfigurationProperties 注解

六、springboot自动装配流程


springboot源码解析:
1、系统启动加载@SpringBootApplication然后加载@EnableAutoConfiguration

2、@EnableAutoConfiguration是开启核心配置的注解,注解上@Import({AutoConfigurationImportSelector.class})

3、AutoConfigurationImportSelector中getCandidateConfigurations(annotationMetadata, attributes)加载所有配置

4、getCandidateConfigurations中使用使用loadSpringFactories

5、loadSpringFactories会去META-INF/spring.factories中已配置好的bean

总结:spring默认只会加载本包和子包下的bean,springboot通过以上流程可以加载到META-INF/spring.factories中配置的bean对象,加载到ioc容器中,需要的时候通过@Autowied注解注入使用即可

七、springboot启动流程

1.创建springapplication实例,记录启动类字节码,判断项目类型,加载spring.factories文件
2.调用run()方法
3.准备监听器,监听spring启动过程
3.创建并配置environment对象
4.创建applicationcontext(上下文)对象
5.初始化applicationcontext(上下文),准备运行环境
6.准备bean工厂,调用beandefinition和beanfactory的后处理器,初始化各种bean初始化tomcat
7.发布容器初始化完毕的事件