Spring Boot 加载 Jar 包内的 Properties 文件

在我们开发基于 Spring Boot 的应用程序时,加载不同位置的属性文件(例如,jar 包内的 properties 文件)是一项常见需求。本文将带您逐步学习如何在 Spring Boot 项目中加载 jar 包内部的 properties 文件。以下是实现的基本流程。

流程概述

步骤 操作 描述
1 创建项目 创建一个新的 Spring Boot 项目
2 添加依赖 pom.xml 中添加所需依赖
3 创建 properties 文件 在项目的 jar 包中创建 properties 文件
4 创建配置类 编写一个配置类来加载这些属性文件
5 使用属性 在应用程序中使用加载的属性
6 测试 运行项目并验证属性是否正确加载

详细步骤

1. 创建项目

你可以使用 [Spring Initializr]( 创建一个新的 Spring Boot 项目。确保你选择了合适的 Spring Boot 版本,并添加 Web 和配置支持的依赖。

2. 添加依赖

在项目的 pom.xml 文件中添加需要的依赖。以 Spring Boot Starter 为例:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

3. 创建 properties 文件

在资源目录下(通常是 src/main/resources),创建一个 config.properties 文件,内容示例:

app.name=Spring Boot Example
app.version=1.0.0

4. 创建配置类

接下来,我们需要创建一个配置类,该类将负责加载 jar 包内部的 properties 文件。下面的代码定义了这个配置类:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    // 从 properties 文件中加载属性
    @Value("${app.name}")
    private String appName;

    @Value("${app.version}")
    private String appVersion;

    // Getters
    public String getAppName() {
        return appName;
    }

    public String getAppVersion() {
        return appVersion;
    }
}

代码说明:

  • @Configuration 注解表明这是一个配置类,Spring Boot 会扫描并加载它。
  • @Value 注解用于注入配置属性。

5. 使用属性

接下来,我们可以在应用程序中使用这些属性。创建一个控制器类来展示这些属性:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AppController {

    @Autowired
    private AppConfig appConfig;

    @GetMapping("/info")
    public String appInfo() {
        return "Application Name: " + appConfig.getAppName() + ", Version: " + appConfig.getAppVersion();
    }
}

代码说明:

  • @RestController 注解将类标记为控制器。
  • 我们使用 @Autowired 注入 AppConfig,并创建一个接口返回应用程序的信息。

6. 测试

运行 Spring Boot 应用程序,并在浏览器中访问 http://localhost:8080/info,你将看到应用程序名称和版本号。


类图与序列图

为了更清晰地了解应用程序的结构以及各个组件之间的交互,我们将使用类图和序列图。

类图

classDiagram
    class AppConfig {
        - String appName
        - String appVersion
        + String getAppName()
        + String getAppVersion()
    }

    class AppController {
        - AppConfig appConfig
        + String appInfo()
    }

    AppConfig <|-- AppController : uses

序列图

sequenceDiagram
    participant User
    participant AppController
    participant AppConfig

    User->>AppController: Send request to /info
    AppController->>AppConfig: Get values of appName and appVersion
    AppConfig-->>AppController: Return appName and appVersion
    AppController-->>User: Return application info

结论

在本教程中,我们展示了如何在 Spring Boot 应用程序中加载 jar 包内部的 properties 文件。通过步骤的讲解、代码示例以及辅助图示,您应该能够清晰地理解这一过程。

接下来,您可以尝试在您的应用中添加其他配置属性,进一步扩展应用的功能。同时,Spring Boot 还支持多种配置文件格式,如 YAML 等,您可以进行更多的探索和实践。希望这篇文章能对您在 Spring Boot 开发中的配置管理有所帮助!