当前位置: 首页 > news >正文

如何在Spring Boot项目中添加自定义的配置文件?

在Spring Boot项目中添加和使用自定义配置文件非常灵活,以下是几种常用方式:

1. 使用默认配置文件(推荐)

Spring Boot默认读取​​src/main/resources​​下的:

  • ​​application.properties​​

  • ​​application.yml​​(或​​application.yaml​​)

示例:application.properties

# 服务器端口 server.port=8081 # 自定义配置 app.name=MySpringApp app.version=1.0.0 app.enabled=true

复制

示例:application.yml(更简洁的格式)

server: port: 8081 app: name: MySpringApp version: 1.0.0 enabled: true

复制

2. 添加自定义命名的配置文件

如果需要分离配置(如数据库配置、第三方服务配置),可以创建自定义配置文件。

方式一:通过@PropertySource注解加载

创建自定义配置文件​​src/main/resources/config/app-config.properties​​:

创建配置类绑定这些属性:

方式二:通过配置文件指定额外配置

在主配置文件​​application.properties​​中指定要加载的配置文件:

# 加载多个自定义配置文件 spring.config.import=classpath:config/db-config.properties,classpath:config/mq-config.properties

复制

3. 按环境区分配置文件

Spring Boot支持按环境加载不同配置文件,命名规则:​​application-{profile}.properties​​

  1. 创建环境配置文件:

  • ​​application-dev.properties​​(开发环境)

  • ​​application-test.properties​​(测试环境)

  • ​​application-prod.properties​​(生产环境)

  1. 指定激活的环境:

  • 在​​application.properties​​中添加:​​spring.profiles.active=dev​​

  • 启动时通过命令行指定:​​java -jar app.jar --spring.profiles.active=prod​​

4. 使用配置的两种方式

方式一:通过@Value注解直接获取

import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ConfigController { // 从默认配置文件获取 @Value("${app.name}") private String appName; // 从自定义配置文件获取 @Value("${app.max-connections}") private int maxConnections; @GetMapping("/config") public String getConfig() { return "App Name: " + appName + ", Max Connections: " + maxConnections; } }

复制

方式二:通过@ConfigurationProperties绑定(推荐批量使用)

如前面创建的​​AppConfig​​类,在需要使用的地方直接注入:

@RestController public class AppController { private final AppConfig appConfig; // 构造函数注入 public AppController(AppConfig appConfig) { this.appConfig = appConfig; } @GetMapping("/app-info") public String getAppInfo() { return "Timeout: " + appConfig.getTimeout() + ", Tracking: " + appConfig.getFeature().isTrackingEnabled(); } }

复制

注意事项

  1. 配置文件路径优先级:外部配置 > 内部配置,具体可参考Spring Boot官方文档

  2. 使用​​@ConfigurationProperties​​需要添加依赖(Spring Boot 2.2+已默认包含):

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>

复制

  1. 配置项命名推荐使用小写字母加连字符(如​​max-connections​​),绑定到Java类时会自动转换为驼峰命名(​​maxConnections​​)

通过以上方法,你可以灵活地管理Spring Boot项目中的各种配置。

http://www.dtcms.com/a/392169.html

相关文章:

  • 【MySQL初阶】01-MySQL服务器和客户端下载与安装
  • AI搜索的下一站:多模态、个性化与GEO的道德指南
  • OpenLayers地图交互 -- 章节四:修改交互详解
  • Gradle插件的分析与使用
  • 如何避免everything每次都重建索引
  • 基于SIFT+flann+RANSAC+GTM算法的织物图像拼接matlab仿真,对比KAZE,SIFT和SURF
  • 笔记:现代操作系统:原理与实现(3)
  • 【智能系统项目开发与学习记录】Docker 基础
  • 数据展示方案:Prometheus+Grafana+JMeter 备忘
  • flask获取ip地址各种方法
  • 17.6 LangChain多模态实战:语音图像文本融合架构,PPT生成效率提升300%!
  • MyBatis实战教程:SQL映射与动态查询技巧
  • 在 Windows Docker 中通过 vLLM 镜像启动指定大模型的方法与步骤
  • 分类预测 | Matlab实现SSA-BP麻雀搜索算法优化BP神经网络多特征分类预测
  • GO实战项目:基于 `HTML/CSS/JS + Gin + Gorm + 文心一言API`AI 备忘录应用
  • 数据结构【堆(⼆叉树顺序结构)和⼆叉树的链式结构】
  • 我爱学算法之—— 位运算(下)
  • LeetCode第364题_加权嵌套序列和II
  • 云计算和云手机之间的关系
  • 胡服骑射对中国传统文化的影响
  • leetcode-hot-100 (多维动态规划)
  • Chromium 138 编译指南 Ubuntu 篇:depot_tools安装与配置(三)
  • 在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
  • 小杰机器学习高级(four)——基于框架的逻辑回归
  • 基于AI分类得视频孪生鹰眼图像三维逆变换矫正算法
  • [Tongyi] 智能代理搜索范式 | 决策->行动->观察(循环迭代)
  • FLink:窗口分配器(Window Assigners)指定窗口的类型
  • GO实战项目:流量统计系统完整实现(Go+XORM+MySQL + 前端)
  • 零基础-动手学深度学习-13.10. 转置卷积
  • 【Math】初三第一、二单元测试卷(测试稿)