【Java 开发日记】有了解过 SpringBoot 的参数配置吗?

有的。Spring Boot 的参数配置是开发中非常核心的一部分,主要用于控制应用行为、环境切换、数据库连接、端口设置等。下面给你做一个比较系统的总结,适合写 Java 开发日记 / 技术博客


【Java 开发日记】SpringBoot 参数配置详解

在使用 Spring Boot 开发项目时,经常需要配置各种参数,比如:

  • 服务器端口
  • 数据库连接
  • 日志级别
  • 第三方接口地址
  • 环境配置(dev / test / prod)

SpringBoot 提供了一套非常灵活的配置体系


一、常见配置文件

SpringBoot 默认支持两种配置文件:

1️⃣ application.properties

server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456

特点:

  • key=value 格式
  • 简单直观

2️⃣ application.yml(推荐)

server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456

优点:

  • 层级结构清晰
  • 可读性更好

二、参数读取方式

SpringBoot 提供多种方式读取配置。


1️⃣ @Value 注解

适合读取单个配置

@Value("${server.port}")
private String port;

也可以设置默认值:

@Value("${server.port:8080}")
private String port;

如果没有配置:

默认使用 8080


2️⃣ @ConfigurationProperties(推荐)

适合批量读取配置

配置文件:

app:
  name: demo
  version: 1.0

Java 类:

@Component
@ConfigurationProperties(prefix = "app")
public class AppConfig {

    private String name;
    private String version;

    // getter setter
}

使用:

@Autowired
private AppConfig appConfig;

优点:

  • 类型安全
  • 结构清晰
  • 适合大型项目

三、多环境配置

在实际开发中通常会有多个环境:

开发环境 dev
测试环境 test
生产环境 prod

SpringBoot 支持 Profile 配置


1️⃣ 创建环境配置

application-dev.yml
application-test.yml
application-prod.yml

例如:

application-dev.yml

server:
  port: 8081

application-prod.yml

server:
  port: 80

2️⃣ 激活环境

在主配置文件中:

spring:
  profiles:
    active: dev

也可以通过 启动参数

java -jar app.jar --spring.profiles.active=prod

四、配置优先级(重要)

SpringBoot 配置有严格的优先级。

从高到低:

1️⃣ 命令行参数

java -jar app.jar --server.port=9000

2️⃣ 系统环境变量

3️⃣ application.yml

4️⃣ application.properties

5️⃣ 默认配置


五、随机值配置

SpringBoot 可以生成随机值。

my:
  secret: ${random.uuid}

其他:

${random.int}
${random.long}
${random.value}

例如:

token: ${random.uuid}

每次启动都会变化。


六、占位符引用

配置可以互相引用。

app:
  name: demo

message: Welcome to ${app.name}

最终:

Welcome to demo

七、自定义配置类(企业常用)

实际项目中通常这样做:

配置文件:

oss:
  endpoint: xxx
  accessKey: xxx
  secretKey: xxx

Java 类:

@ConfigurationProperties(prefix = "oss")
@Component
public class OssProperties {

    private String endpoint;
    private String accessKey;
    private String secretKey;
}

这样项目中就可以直接使用:

@Autowired
private OssProperties ossProperties;

八、配置刷新(进阶)

如果项目使用 配置中心,可以动态刷新配置,比如:

  • Spring Cloud Config
  • Nacos

需要使用:

@RefreshScope

实现运行时更新配置


九、常见配置示例

修改端口

server:
  port: 8082

修改项目路径

server:
  servlet:
    context-path: /api

访问地址:

http://localhost:8082/api

日志级别

logging:
  level:
    root: INFO
    com.example: DEBUG

十、SpringBoot 配置最佳实践

推荐方式:

1️⃣ 使用 application.yml
2️⃣ 使用 @ConfigurationProperties
3️⃣ 按环境拆分配置
4️⃣ 敏感信息放配置中心

示例结构:

config
 ├── application.yml
 ├── application-dev.yml
 ├── application-test.yml
 └── application-prod.yml

✅ 一句话总结

在 Spring Boot 中:

  • 配置文件负责 应用参数管理
  • @Value 适合 简单读取
  • @ConfigurationProperties 适合 复杂配置
  • Profile 实现 多环境管理

如果你愿意,我可以再给你整理一份 《SpringBoot 参数配置最全总结(面试级)》,包括:

  • 20 种配置读取方式
  • 配置优先级原理
  • 自动配置源码解析
  • 真实大厂项目配置结构

很多 **Java 面试(阿里 / 字节 / 腾讯)**都会问这些。

文章已创建 5021

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部