锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. JAVA
  4. Spring Boot配置文件详解

Spring Boot配置文件详解

0
  • JAVA
  • 发布于 2024-08-16
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

一、基础语法

1. SpringBoot 提供了 2 种配置文件类型:properteis 和 yml/yaml

2. 默认配置文件名称:application

3. 在同一级目录入如果三类文件共存,优先级为:properties > yml > yaml

二、注意事项

1. 大小写敏感

2. 数据值前边必须有空格,作为分隔符

3. 使用缩进表示层级关系

4. 缩进时不允许使用 Tab 键,只允许使用空格(各个系统 Tab 对应的 空格数目可能不同,导致层次混乱)。

5. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

6. "#" 表示注释,从这个字符一直到行尾,都会被解析器忽略。

三、数据格式

#############################数据格式####################################
#	字面量:普通的值  [ 数字,布尔值,字符串  ]
boolean: TRUE 				#TRUE,true,True,FALSE,false,False均可
float: 3.14 				#6.8523015e+5 #支持科学计数法
int: 123 					#0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
string: HelloWorld 			#字符串可以直接书写
 
#	数组:一组按次序排列的值( List、set )
address:
  - 西安
  - 上海
  - 杭州
# 行内写法
commpany: [阿里巴巴,华为,腾讯,字节跳动]
 
#	对象、Map(键值对)
person1:
  name: 小美
  age: 19
  sex: 女
 
# 行内写法
person2: {name: 大美,age: 18,sex: 女}
 
#对象数组格式一
users1:
  - name: Tom
    age: 4
  - name: Jerry
    age: 5
 
#对象数组格式二
users2:
  -
    name: Tom
    age: 4
  -
    name: Jerry
    age: 5
 
#对象数组缩略格式
users3: [ { name:Tom,age:4 },{ name:Jerry,age:5 } ]
 
 
#yaml引用
name: 271
 
persons:
  name: 十个勤天
  pet: ${name}	# 引用上边定义的name值
  age: ${random.uuid} # 配置文件占位符,随机uuid

四、Spring Boot 注解的作用

1、@ConfigurationProperties 注解

提供了一种方便的方式,可以将配置文件中的属性映射到 Java 对象的字段上。这样做的一个常见的方式是使用属性的前缀来进行匹配。

application.yml 配置文件

# application.yml 
myapp.database:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password

实体类:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component 
@ConfigurationProperties(prefix = "myapp.database")
public class DatabaseProperties {
    private String url;
    private String username;
    private String password;
 
    // Getters and setters
    
    // toString()
 
    // 可以在这里添加其他的业务逻辑 
}

2、@Value 注解

使用 @Value 注解可以直接将配置文件中的属性值注入到 Spring Bean 中的字段或方法参数上。

application.yml 配置文件  

dog:
  dname: 花花
  dage: 4

实体类:

@Component
public class Dog {
    @Value("${dog.dname}")
    private String dname;
    @Value("${dog.dage}")
    private int dage;
 
// setter/getter/toString()方法

3.@Validated 注解

通常用于对输入数据进行校验。当在方法参数、方法返回值或类级别上使用 @Validated 注解时,Spring 会根据预先定义的校验规则来检查相关的数据是否有效。

//对个别属性进行输入校验
 
@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
    @NotNull(message = "用户名称不能为空")
    private String name;
    @Email(message = "邮箱格式不正确")
    private String email;
    private String sex;
    @NotNull(message = "用户年龄不能为空")
    @Max(value = 150,message = "给年轻人留点机会吧")
    private int age;
    private Date birthday;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

4、 @PropertySource 注解

使用 @PropertySource 注解可以在配置类中引入外部的属性文件。

//引入外部文件application.properties
 
@Component
@PropertySource("classpath:application.properties")
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
    @NotNull(message = "用户名称不能为空")
    private String name;
    @Email(message = "邮箱格式不正确")
    private String email;
    private String sex;
    @NotNull(message = "用户年龄不能为空")
    @Max(value = 150,message = "给年轻人留点机会吧")
    private int age;
    private Date birthday;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

五、 application.yml 基础配置

1. 逐一插入、批量插入

##########################逐个注入###################################
dog:
  dname: 花花
  dage: 4
 
##########################批量注入###################################
person:
  name: 王一博
  email: 123456789@qq.com
  sex: 男
  age: 27
  birthday: 1997/8/5
  maps: {k1: v1,k2: v2}
  lists:
    - code
    - bodybuilding
    - music
  dog:
    dname: summer
    dage: 4

2. 常见 yml 配置

# 服务器端口
server:
  port: 8080
 
# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver
 
# 日志级别
logging:
  level:
    root: INFO
    com.example.mypackage: DEBUG
 
# 应用程序自定义属性
myapp:
  name: My Spring Boot App
  version: 1.0

六、多个 yml 文件怎么使用?

修改端口号为例

1.application.yml(调用)

spring:
  profiles:
    active: dev

2.application-dev.yml

server:
  port: 8082

3.application-test.yml

server:
  port: 8081

4. 验证:

原端口号 (8081) ---------> 先端口号 8082

标签: #软件开发 1171 #JAVA 991
相关文章

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

SpringBoot整合异步任务执行 2024-10-08 11:24

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等 并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用 户体验 异步任务: 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源

springboot kafka多数据源,通过配置动态加载发送者和消费者 2024-10-08 11:24

前言 最近做项目,需要支持kafka多数据源,实际上我们也可以通过代码固定写死多套kafka集群逻辑,但是如果需要不修改代码扩展呢,因为kafka本身不处理额外逻辑,只是起到削峰,和数据的传递,那么就需要对架构做一定的设计了。 准备test kafka本身非常容易上手,如果我们需要单元测试,引入ja

SpringBoot 集成 Redis 2024-10-08 11:24

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客户端可以使用多种语

SpringBoot整合QQ邮箱 2024-10-08 11:24

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件…. 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.