找回密码
 立即注册

QQ登录

只需一步,快速开始

工控课堂 首页 工控文库 上位机编程 查看内容

返回主页九卷技术录--关注技术架构,管理,产品

2022-9-18 14:31| 发布者: gk-auto| 查看: 477| 评论: 0|来自: 博客园

摘要: 一、创建一个SpringBoot项目#创建 SprintBoot 项目的 2 种方式:在https://start.spring.io/上创建一个 SpringBoot 项目,然后导入到 IDEA 里。直接在 IDEA 上创建 SpringBoot 项目, File-New-Project, Sprint Initi ...

一、创建一个SpringBoot项目#

创建 SprintBoot 项目的 2 种方式:

  1. 在 https://start.spring.io/ 上创建一个 SpringBoot 项目,然后导入到 IDEA 里。
  2. 直接在 IDEA 上创建 SpringBoot 项目, File->New->Project, Sprint Initializr,填上相关信息。

我直接在 https://start.spring.io/ 生成一个项目然后下载下来,导入 IDEA 里。

image-20220915223725068

把下载的文件解压放在 SpringBootConfigDemos 文件夹下:

image-20220915223918315

二、配置文件类型#

在上一小节的图中可以看到,在 src/main/resources 目录下的 application.properties 文件,这个就是创建的默认全局配置文件

这是一种文件类型,以 .properties 后缀结尾。

还有一种以 .yml 后缀结尾的 YAML 文件类型 - application.yml/application.yaml

YAML 是比 properties 格式更年轻,在云原生里用的很多这种配置格式。

三、配置文件语法格式#

3.1 application.properties 类型#

properties 在 java 里属于比较常见的配置文件类型,语法格式: key=valve 形式,

Copy
key=value

用法例子:

Copy
server.port = 80 server.ip = 127.0.0.1 app.property.key = proname app.property.name = tom app.list = 1,2,3 # 还有这样语法 # 把启动命令时加入: --spring.profiles.active=dev spring.profiles.active = ${spring.profiles.active} # 读取启动命令参数 # 属性占位符:使用${var}语法引用已经定义的属性的值 app.desc = your name is ${app.property.name}

3.2 application.yml 类型#

把上面 properties 格式改成 yml 格式:

Copy
server: port: 80 ip: 127.0.0.1 app: property: key: proname name: tom list: [1,2,3] desc: your name is ${app.property.name} spring: profiles: active: ${spring.profiles.active}

比如对于一个数组,可以这样写:

Copy
person: hobby: - 篮球 - 跑步 - 读书

还可以这样写:

Copy
person: hobby: [篮球, 跑步, 读书]

YAML 支持以下几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

YAML 入门教程:

说明:YAML 格式是大小写敏感的。key: value 表示键值对关系,冒号后面必须加一个空格

3.3 配置随机值#

SpringBoot 内部提供了一个 random.* 属性,专门用于生成随机值。

属性描述
random.int随机产生正负的整数
random.int(max)随机产生 [0, max) 区间的整数
random.int(min,max)随机产生 [min, max) 区间的整数
random.long随机产生正负的长整数
random.long(max)随机产生 [0, max) 区间的长整数
random.long(min,max)随机产生 [min, max) 区间的长整数
random.uuid产生 UUID 字符串(含‘-‘字符)
random.*‘*’表示除上面列举之外的其他字符,用于随机产生 32 位字符串

配置例子:

Copy
int-val=${random.int} int-range-val=${random.int(2)} uuid-val=${random.uuid}

四、配置文件加载顺序#

SpringBoot 启动时会加载以下位置的 application.properties 或者 application.yml 作为默认配置文件。

  1. file:./config/
  2. file:./config/*/
  3. file:./
  4. classpath:/config/
  5. classpath:/

加载顺序依次从上到下,所有文件都会加载,高优先级的内容会覆盖低优先级的内容。

五、其它形式配置#

5.1 其它形式配置#

其实上面已经有使用到,比如读取命令行参数信息到配置文件里。这里的命令行参数也是一种动态配置信息。

其它常用配置形式:

  1. 系统环境变量:在 linux 中经常用到这个。
  2. 命令行参数:启动应用时常常会配置的运行参数。
  3. Java 系统属性:通过 System.getProperties() 获取的。
  4. 一些注解设置的属性文件,比如 @PropertySource 设置的属性文件
  5. 启动类 SpringApplication.setDefaultProperties 设置的默认属性

5.2 加载顺序怎样#

  1. 命令行参数
  2. Java 系统属性
  3. 系统环境变量
  4. 含有 random.* 值的属性
  5. application-{profile}.{properties|yml}
  6. application.{properties|yml}
  7. 注解 @PropertySource 设置的属性文件
  8. 启动类 SpringApplication.setDefaultProperties 设置的默认属性

加载顺序依次从上到下。

六、配置信息作用#

  1. 数据库连接信息保存

  2. 项目的启动信息,比如 test,dev,prod 环境,端口信息等

  3. 一些自定义配置信息,比如文件上传地址,调用第三方 url 地址、uid、密匙信息等

等等。

七:读取配置文件#

7.0 绑定配置的一些规则#

SpringBoot 对 *.properties 和 *.yml 文件中配置的属性名称,它提供了一些绑定规则,它不要求配置的属性名称完全与 Bean 中的属性名称相同。它支持以下几种规则的命名方式:

属性描述
firstName标准的驼峰式命名
first-name单词之间通过‘-‘分隔,Spring Boot 推荐这种
first_name单词之间通过‘_’分隔
FIRST_NAME单词全部大写并通过‘_’分隔,在使用系统环境变量时,推荐这种

7.1 通过 @Value 注解读取#

application.yml:

Copy
server: port: 80 ip: 127.0.0.1

关注公众号,加入500人微信群,下载100G免费资料!

最新评论

热门文章
关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 01:24 , Processed in 0.111812 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.