【Spring Boot 自定义配置项详解】

文章目录

  • 一、配置文件
    • [1. properties配置](#1. properties配置)
      • [1.1 创建配置文件](#1.1 创建配置文件)
      • [1.2 添加配置项](#1.2 添加配置项)
      • [1.3 在应用中使用配置项](#1.3 在应用中使用配置项)
      • [1.4 多环境配置](#1.4 多环境配置)
    • [2. YAML配置](#2. YAML配置)
      • [2.1 创建配置文件](#2.1 创建配置文件)
      • [2.2 添加配置项](#2.2 添加配置项)
      • [2.3 在应用中使用配置项](#2.3 在应用中使用配置项)
      • [2.4 多环境配置](#2.4 多环境配置)
  • 二、自定义配置类
    • [1. 创建配置类](#1. 创建配置类)
    • [2. 使用配置类](#2. 使用配置类)

一、配置文件

Spring Boot支持多种配置文件格式,包括properties和YAML。可以根据项目需求选择合适的格式。

1. properties配置

1.1 创建配置文件

在src/main/resources目录下创建一个application.properties文件(如果没有则新建)。这是Spring Boot默认读取的配置文件名。

1.2 添加配置项

properties 复制代码
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password

1.3 在应用中使用配置项

通过@Value注解或@ConfigurationProperties注解将配置值注入到Spring Bean中:

java 复制代码
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class DatabaseConfig {

    @Value("${spring.datasource.url}")
    private String dbUrl;

    @Value("${spring.datasource.username}")
    private String dbUsername;

    @Value("${spring.datasource.password}")
    private String dbPassword;

    // 省略getter和setter方法
}

1.4 多环境配置

可以根据不同的环境(如开发、测试、生产)创建不同的配置文件(如application-dev.propertiesapplication-test.propertiesapplication-prod.properties),并在启动应用程序时通过spring.profiles.active属性来指定使用的环境。

properties 复制代码
spring.profiles.active=dev

2. YAML配置

2.1 创建配置文件

创建一个application.yml文件,YAML格式的配置文件更易读且支持复杂结构的配置。

2.2 添加配置项

yaml 复制代码
# 数据库连接配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password

2.3 在应用中使用配置项

与properties配置类似,通过@ConfigurationProperties注解将配置值注入到Spring Bean中。

java 复制代码
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DatabaseConfig {

    private String url;
    private String username;
    private String password;

    // 省略getter和setter方法
}

2.4 多环境配置

同样支持多环境配置,可以使用spring.profiles.active属性来指定不同的环境。


二、自定义配置类

除了使用@Value@ConfigurationProperties注解外,还可以通过自定义配置类的方式来管理配置项。

1. 创建配置类

java 复制代码
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "myapp")
public class MyAppConfig {

    private String apiUrl;
    private String apiKey;

    // 省略getter和setter方法
}

2. 使用配置类

直接在需要使用的地方注入该配置类即可:

java 复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MyApiClient {

    private final MyAppConfig appConfig;

    @Autowired
    public MyApiClient(MyAppConfig appConfig) {
        this.appConfig = appConfig;
    }

    public void callApi() {
        String apiUrl = appConfig.getApiUrl();
        String apiKey = appConfig.getApiKey();

        // 使用配置的API URL和API Key进行操作
    }
}
相关推荐
小_太_阳13 分钟前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾16 分钟前
scala借阅图书保存记录(三)
开发语言·后端·scala
黑胡子大叔的小屋33 分钟前
基于springboot的海洋知识服务平台的设计与实现
java·spring boot·毕业设计
ThisIsClark36 分钟前
【后端面试总结】深入解析进程和线程的区别
java·jvm·面试
星就前端叭1 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
计算机毕设孵化场1 小时前
计算机毕设-基于springboot的校园社交平台的设计与实现(附源码+lw+ppt+开题报告)
spring boot·课程设计·计算机毕设论文·计算机毕设ppt·计算机毕业设计选题推荐·计算机选题推荐·校园社交平台
雷神乐乐1 小时前
Spring学习(一)——Sping-XML
java·学习·spring
苹果醋32 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
小林coding2 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云
AI理性派思考者2 小时前
【保姆教程】手把手教你在Linux系统搭建早期alpha项目cysic的验证者&证明者
后端·github·gpu