在Spring Boot YML配置文件中使用MAVEN变量@var@

本文介绍如何在Spring Boot应用的YAML配置文件中正确使用Maven变量进行配置,并展示了如何根据不同环境设置数据库连接及Eureka服务注册中心的地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在application.properties后缀的配置文件中我们如下使用MAVEN变量:

eureka.client.serviceUrl.defaultZone=@defaultZone@

@运行时符号会自替换成MAVEN变量配置好的值,但是换成YML配置文件不行了,会报错,如下配置即可解决:

eureka:
  client:
      service-url:
        defaultZone: '@defaultZone@'

 

 

补充更新maven配置:

<profiles>
    <profile>
        <id>测试配置</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>${java.version}</jdk>
        </activation>
        <properties>
            <!-- mysql database url -->
            <driverClassName>com.mysql.jdbc.Driver </driverClassName>
            <url>jdbc:mysql://localhost:3306/db</url>
            <username>root</username>
            <password></password>
            
            <defaultZone>http://localhost:8500/eureka/</defaultZone>
            countURL>
        </properties>
    </profile>

    <profile>
        <id>仿真配置</id>
        <properties>
            <!-- mysql database url -->
            <driverClassName>com.mysql.jdbc.Driver </driverClassName>
            <url>jdbc:mysql://localhost:3306/db</url>
            <username>root</username>
            <password></password>
            
            <defaultZone>http://localhost:8500/eureka/</defaultZone>
            ccountURL>
        </properties>
    </profile>

    <profile>
        <id>生产配置</id>
        <properties>
            <!-- mysql database url -->
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
            <url>jdbc:mysql://localhost:3306/db</url>
            <username>root</username>
            <password></password>
            
            <defaultZone>http://localhost:8500/eureka/</defaultZone>
            
        </properties>
    </profile>
</profiles>

### 如何在YML文件中配置环境变量和运行环境 #### 配置系统环境变量 为了在Spring Boot项目的`application.yml`文件中使用系统环境变量,需先确保这些环境变量已经在操作系统层面被正确设置。例如,在Windows 11系统中可以通过系统的“高级系统设置”界面添加或编辑环境变量[^1]。 完成环境变量的配置后,可以利用`${}`语法在`application.yml`文件中引用它们。假设有一个名为`MY_ENV_VAR`的系统环境变量,则可以在`application.yml`中这样写: ```yaml app: config: envVar: ${MY_ENV_VAR} ``` 需要注意的是,IDE(如IntelliJ IDEA)可能需要重新启动才能识别新添加的环境变量[^1]。 #### 使用多环境配置 当涉及到不同运行环境(开发、测试、生产等),通常会在Spring Boot项目中创建多个`.yml`文件来分别定义不同的配置。常见的做法是命名这些文件为`application-dev.yml`、`application-test.yml`以及`application-prod.yml`等,并通过激活特定的profile来加载对应的配置[^2]。 要指定某个具体的运行环境,可在`application.yml`中加入以下内容: ```yaml spring: profiles: active: dev ``` 这里将活动的profile设为`dev`,意味着程序会优先读取`application-dev.yml`中的配置项。如果同时存在同名配置项于其他文件中,默认情况下会被覆盖掉[^2]。 另外值得注意的一点是,如果有`.properties`文件与`.yml`文件共存的情况发生时,按照当前文档的理解来看,可能会优先采用`.properties`形式的配置文件[^2]。因此建议保持一致性以减少混淆。 #### Maven集成支持 对于更复杂的场景下,比如希望从Maven构建工具所管理的依赖关系或者自定义参数里获取某些值到应用层面上去处理的时候,也可以借助类似的占位符机制达成目标。例如下面展示了一个例子说明怎样把存在于POM文件内部的一个property映射过来作为外部可访问资源的一部分[^4]: 首先,在`pom.xml`中定义好相应的属性: ```xml <properties> <test.maven.pro>I am test pro.</test.maven.pro> </properties> ``` 接着就可以像平常一样调用了: ```yaml example: message: ${test.maven.pro} ``` 这使得开发者能够灵活地控制各种级别的设定而无需频繁修改源码本身即可适应变化需求。 ---
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值