IIWAB springboot 的application.yml文件读取pom文件的properties属性 - IIWAB

springboot 的application.yml文件读取pom文件的properties属性

IIWAB 8小时前 ⋅ 3 阅读

在Spring Boot中,要在application.yml中读取pom.xml中的属性,可以通过Maven的资源过滤功能实现。以下是具体配置步骤:

  1. 首先在pom.xml中定义属性并配置资源过滤:
<project>
    <!-- 定义自定义属性 -->
    <properties>
        <app.version>1.0.0</app.version>
        <app.name>my-springboot-app</app.name>
    </properties>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 开启资源过滤 -->
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>
  1. 然后在application.yml中使用@属性名@的方式引用:
app:
  # 引用pom.xml中定义的属性
  version: @app.version@
  name: @app.name@
  # 也可以用于配置其他属性
  full-description: "${app.name} version ${app.version}"

# 可以在任何地方使用这些属性
server:
  port: 8080
  servlet:
    context-path: /${app.name}
  1. 如果需要在Java代码中使用这些属性,可以通过@Value注解注入:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AppInfo {
    @Value("${app.version}")
    private String appVersion;
    
    @Value("${app.name}")
    private String appName;
    
    // getters and setters
}

工作原理

  • Maven在构建项目时,会对src/main/resources目录下的文件进行过滤
  • filtering设置为true时,Maven会将文件中@属性名@格式的占位符替换为pom.xml中定义的对应属性值
  • 这样Spring Boot在启动时,就能读到替换后的实际值

全部评论: 0

    我有话说: