application.yaml、application-dev.yaml和application-local.yaml的区别

在Spring Boot应用中,application.yaml 文件是最基础的配置文件,它包含了应用程序运行时的基本配置信息。Spring Boot支持多种环境配置,通过不同的配置文件来适应开发、测试、生产等不同的环境需求。

application.yaml 文件通常用于默认配置,即当没有特定环境配置文件存在时,会使用这个文件中的配置。

而 application-dev.yaml 和 application-local.yaml 这样的文件则是针对特定环境的配置文件。这里的 -dev 和 -local 分别代表了开发环境和本地环境。Spring Boot会自动加载这些带有环境后缀的配置文件,如果它们存在于类路径中。

Spring Boot会根据当前激活的环境(由 spring.profiles.active 属性定义)来选择加载相应的配置文件。例如,如果你的 application.properties 或者 application.yaml 中有如下设置:

spring:
  profiles:
    active: dev

那么 Spring Boot 将会加载 application-dev.yaml 文件,覆盖 application.yaml 中的同名属性。

如果同时存在多个配置文件,比如 application.yaml, application-dev.yaml, application-local.yaml,并且你设置了 spring.profiles.active=dev,那么 application-dev.yaml 将会优先于 application.yaml 被加载,而 application-local.yaml 只有在 spring.profiles.active=local 的情况下才会被加载。

总结一下

这些配置文件的区别主要在于它们的使用场景和优先级:

  • application.yaml是主配置文件,定义了所有环境通用的配置。
  • application-dev.yaml是针对开发环境的特定配置,覆盖了通用配置中的部分内容。
  • application-local.yaml是用于开发者本地环境的特定配置文件,通常不被包含在版本控制中。
### Spring Boot Docker 部署并挂载 `application-dev.yml` `application.properties` 为了实现Spring Boot应用的Docker化部署,并正确挂载外部配置文件,可以遵循以下方法: #### 准备工作 确保已经安装好JDKMaven环境。可以通过解压方式快速完成安装[^1]。 ```bash tar -zxvf jdk-8*.tar.gz -C /usr/local/ tar -zxvf apache-maven-*.tar.gz -C /usr/local/ cd /usr/local && mv apache-maven*/ maven && mv jdk1.8*/ jdk ``` 编辑 Maven 的全局设置文件 `/usr/local/maven/conf/settings.xml` 来指定本地仓库路径其他必要的参数。 #### 构建Spring Boot应用程序镜像 创建一个名为 `Dockerfile` 文件用于定义构建过程: ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Dspring.profiles.active=dev","-jar","/app.jar"] ``` 此命令指定了启动时激活开发模式(`dev`)下的特定配置文件。 #### 创建Docker Compose文件来管理服务依赖关系服务本身 编写 `docker-compose.yml` 文件以便更方便地管理运行容器组合: ```yaml version: '3' services: springboot-app: build: . ports: - "8080:8080" environment: SPRING_PROFILES_ACTIVE: dev volumes: - ./config/application-dev.yml:/app/config/application-dev.yml - ./config/application.properties:/app/config/application.properties ``` 这里假设所有的配置文件都存放在主机上的 `./config` 目录下;并且这些文件会被映射至容器内的相应位置。 当更新位于宿主机中的配置文件(如 `application-dev.yml` 或者 `application.properties`),由于采用了卷的方式进行挂载,则无需重启Pod即可生效新修改的内容[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无限循环者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值