.yml文件_SpringBoot【配置文件&运行原理篇】

edfe652f3f2b1c1adcb1f36315f72be5.png

1. 前言

SpringBoot最核心的就是自动配置类,而自动配置类需要读取配置文件的信息,来自动创建实例,因此配置文件就显得非常重要了。因此本文主要介绍SpringBoot的配置文件、以及自动配置类和配置文件之间的关系,即SpringBoot的运行原理。

2. SpringBoot 配置文件

SpringBoot默认加载的配置文件是在classpath根目录的application.properties或者

application.yml配置文件。

--注意:

[1] 文件名不能写错,因为默认的文件名写死在SpringBoot配置代码中。
[2] SpringBoot支持properties和yml两个格式的配置文件。

2.1. 配置 Web 服务器

--问题1:为什么SpringBoot明明是一个jar项目而且没有选择服务器组件,但是仍然可以启动项目?

因为SpringBoot默认内嵌了一个Web服务器(Tomcat)

--问题2:那么我们如何修改内嵌的Web服务器的参数呢?

既然已经内嵌在程序里面了,我们也知道SpringBoot的参数就是配置在SpringBoot配置文件里面的。那么当然就是在 SpringBoot配置文件里面配置。

2.1.1. properties 格式配置

--Properties 文件的属性,使用的平铺方式书写

## 设置server参数
## 端口
server.port=8081
## 设置下上文路径
server.servlet.context-path=/springboot-quickStart-properties

2.1.2. yml 格式配置

--Yml 文件的属性使用折叠的方式书写

## 设置server参数
## 注意事项:
## [1] 冒号和参数值之间必须要隔一个空格,否则报错
## [2] 属性设置是有层级之分的
server:
  port: 8082
  servlet:
    context-path: /springboot-quickStart-yml

2.2. 多配置文件

需求:希望可以配置多个配置文件,分类存放配置信息。

2.2.1. Properties 配置步骤

第一步:编写三个配置文件

c1139b4dc3dd31ec0a66f5fb8b3236a7.png

第二步:编写配置文件内容

--注意:

[1] SpringBoo启动的时候加载的是 application.properties配置文件,再通过application.properties配置文件的 spring.profiles.active属性指定加载的其他配置文件。
[2] 其他配置文件的文件名格式为: application-XXX.properties。

b471f71fb224b898f988a2265235e440.png

--application.properties

## 指定加载其他配置文件
spring.profiles.active=server1,server2

--application-server1.properties

## 端口
server.port=8083

--application-server2.properties

## 设置下上文路径
server.servlet.context-path=/springboot-quickStart-properties

第三步:运行项目

--成功结果

eacb35fde7cc52f4af5a930d844d7468.png

2.2.2. Yml 配置步骤

第一步:编写三个 yml 配置文件

b2abed46005392f86a1bc4b3546c4f7a.png

第二步:分别编写配置信息

--注意:

[1] SpringBoot启动的时候加载的是 application.yml 配置文件,再通过application.yml配置文件的 spring.profiles.active属性指定加载的其他配置文件。
[2] 其他配置文件的文件名格式为: application-.yml。

c2bf002af049e7de034c64252cbaa093.png

--application.yml

## 指定加载其他配置文件
spring:
  profiles:
    active: server1,server2

--application-server1.yml

## 端口
server:
  port: 8084

--application-server2.yml

## 设置下上文路径
server:
  servlet:
    context-path: /springboot-quickStart-yml

第三步:启动测试

--成功结果

dad0b809457183cfee1ba6ac24acfa0d.png

3. SpringBoot 运行原理

--问题:经过上一节课的学习,我们知道SpringBoot内置已经整合了很多技术以及功能组件,那么我们如何来记忆学习这些功能组件的属性呢?

通过理解 SpringBoot运行流程图,来理解功能组件的属性是放在哪里的,通过边学边找的方式来记忆规律。

--如图所示:

458e6c3f425f7176ddb137918b7bef9e.png

**启动流程:

第一步:SpringBoot通过加载贴在入口执行类上面的@SpringBootApplication注解,来启动 SpringBoot 项目。
第二步:根据贴在@SpringBootApplication注解上的三个注@SpringBootConfiguraton、 @EnableAutoConfiguration、@ComponentScan,来加载SpringBoot配置类、自动加载的配置类、组件类。

**3个注解的功能如下:

@SpringBootConfiguraton:标识一个类是配置类。 @EnableAutoConfiguration:标识这是一个自动加载的配置类,在SpringBoot启动的时候就自动加载配置类中的组件到容器中。 @ComponentScan:标识需要组件扫描的包,在SpringBoot中,包扫描给入口类所在包及其入口类的子包。

**注意事项:SpringBoot内置支持的组件在spring-boot-autoconfigure-2.2.2.RELEASE.jar 里面。如该包下的jdbc分包下的DataSourceAutoConfiguration:

f592715b73ec6797a10ece88b7aef467.png

其中的EnableConfigurationProperties注解用于加载用户配置的参数信息。

DataSourceProperties的作用就是标识配置文件中那些信息是DataSource使用的,标识的方式就是使用“spring.datasource”前缀。

6f8315467f46fa2d3681bcd58e50db58.png

--根据分析,可以得出结论:自动加载的配置类信息都在 XxxAutoConfiguration里面,配

置的属性参数都在XxxxxProperties里面。

--执行原理图

a270a47dc039bd1822f989cac94aa522.png

**总结:通过执行原理图,可以知道SpringBoot是如何实现自动配置的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值