第九天springboot篇

news/2025/2/13 0:53:42/

    目录

一、什么是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.发布容器初始化完毕的事件


http://www.ppmy.cn/news/40471.html

相关文章

计算机网络 - TCP的效率与特性

前言 本篇是介绍部分TCP的特性,了解TCP提高传输速率的机制;如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录前言1. 滑动窗口2. 流量控制3.拥塞控制4.延时应答5. 捎带应答6. 面向字节流7. 异常…

AI改写实现SEO文章自动批量生成

AI改写是一种利用人工智能技术对已有文章进行重新写作的方式。常常会在SEO等领域中应用。AI改写的方式可以分类为两种:一是基于规则的改写方式,二是基于机器学习的改写方式。 基于规则的改写方式是指利用预设的规则将源文本进行一定的转换和替换&#xf…

国际水量平衡模型在供水管理中的应用

为了科学合理地衡量供水系统的漏损水平,结合国际水协建立的供水平衡模 型和供水服务性能指标系统, 对供水系统的水量组成进行了分类, 通过漏损量 分析和计算,为进一步进行漏损控制提供依据。 目前国内衡量供水管网漏损水平的方法主要采用漏…

Java代理之jdk动态代理+应用场景实战

本文将先介绍jdk动态代理的基本用法,并对其原理和注意事项予以说明。之后将以两个最常见的应用场景为例,进行代码实操。这两个应用场景分别是拦截器和声明性接口,它们在许多开发框架中广泛使用。比如在spring和mybatis中均使用了拦截器模式&a…

网络编程之TCP

hi,大家好,今天为大家带来TCP协议的相关知识 这里写目录标题认识TCP的相关方法实现TCP版本的回显服务器实现多线程版本的TCP回显服务器实现线程池版本的TCP回显服务器认识TCP方法认识TCP的相关方法 实现TCP版本的回显服务器 实现多线程版本的TCP回显服务器 实现线程池版本的…

一文详解CMDB建设实战方法论

随着AI、大数据、云计算等技术发展应用,数字化运维工作也迎来了更大挑战。CMDB作为IT运维数字化演进、运维应用数字化转型的起点,同时也是保障IT运维平台底座的高效运转的基础,因此受到广泛关注。 相关报告显示,2022年全球CMDB软…

神经网络之反向传播算法(自适应矩估计算法Adam)

文章目录自适应矩估计算法(Adam)1、算法原理2、算法实现2.1 训练过程2.2 测试过程及结果3、参考源码及数据集自适应矩估计算法(Adam) 自适应矩估计算法从其本质上看可以视作是带有动量项的均方根反向传播算法,一方面它…