首页 > 其他分享 >SpringBoot容器化的多环境配置

SpringBoot容器化的多环境配置

时间:2023-02-15 23:14:17浏览次数:29  
标签:容器 java SpringBoot 配置 dev hello application env yml

SpringBoot容器化的多环境配置

  • 部署通常会有多个环境,如"dev"/"test"/"prod"等环境
  • 容器化部署通常使用环境变量,而非手动修改配置
  • 例子来自《Spring Boot实战派》中,并进行简化

简单例子

  • 为了简化,忽略了其他无关紧要的文件
  • 示例只配置了"env"的值
* src
    * main
        * java
            * com.xxc.hello // 路径太长就直接这么写了
                * controller
                    * HelloController.java
                * HelloWorldApplication.java
        * resources
            * application.yml
            * application-dev.yml
            * application-prod.yml
* pom.xml
* Dockerfile
  • src/main/resources/application-dev.yml
env: dev-env
  • src/main/resources/application-prod.yml
env: prod-env
  • src/main/resources/application.yml
  • 下方代码标识application-dev.yml文件生效
spring:
  profiles:
    active: dev
  • src/main/java/com/xxc/hello/HelloWorldApplication.java
@EnableAutoConfiguration
@SpringBootApplication
public class HelloWorldApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
}
  • src/main/java/com/xxc/hello/controller/HelloController.java
@RestController
public class HelloController {

    @Value("${env}")
    private String env;

    @GetMapping("/env")
    public String getEnv() {
        return env;
    }

}

使用参数指定生效配置

  • 先将项目打包成"hello.jar"
  • 使用"--spring.profiles.active=<环境>"参数来指定配置文件
  • 生效优先级:命令参数 > application-<指定环境>.yml > application.yml
# 不指定则使用application.yml里指定的环境
java -jar hello.jar

# 环境中指定生效环境
# 以下命令代表指定使用application-prod.yml配置
java -jar hello.jar --spring.profiles.active=prod

容器配置

  • 在Dockerfile中这样设置
...略

ENV env=dev
CMD java -jar hello.jar --spring.profiles.active=$env
  • 容器启动增加env参数
  • 以下命令指定了prod环境配置
docker run --name hello -dp 8080:8080 hello:latest -e env=prod

标签:容器,java,SpringBoot,配置,dev,hello,application,env,yml
From: https://www.cnblogs.com/XuXiaoCong/p/17125107.html

相关文章

  • VS CODE 基本的CC++环境配置
    VSCODE基本的C/C++环境配置​ 以前用vscode来左编译器的时候,是直接创建3个json文件,然后粘贴上网上教程中的代码,要改一些比如g++\gdb的路径(安装mingw64的时候带的文件)......
  • Maven配置多数据源
    一、配置文件修改maven配置文件,用户目录下.m2文件夹中的setting.xml,内容如下<?xmlversion="1.0"encoding="UTF-8"?><settingsxmlns="http://maven.apache.org/SETTIN......
  • springboot--多环境启动
    法一:   法二:       ......
  • spring管理配置文件实现注入
    创建配置文件  写入以下内容:  创建配置文件的bean:  <beanid="configProperties"class="org.springframework.beans.factory.config.PropertiesFact......
  • Jdbc_Druid_Utils_V2连接池-需要在src文件夹下创建配置文件druid.properties
    packagecom.atguigu.api.utils;importcom.alibaba.druid.pool.DruidDataSourceFactory;importjavax.sql.DataSource;importjava.io.IOException;importjava.io.InputS......
  • zsh配置
    sudoaptupdatesudoaptinstallzshchsh-s/usr/bin/zshwgethttps://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh-O-|shgitclonehttps://gi......
  • springboot starter 原理解析及实践
    什么是springbootstarterstarter是springBoot的一个重要部分。通过starter,我们能够快速的引入一个功能,而无需额外的配置。同时starter一般还会给我提供预留的自定配置选......
  • eclipse配置tomcat环境
    Eclipse配置tomcat环境 第一步:进行下面操作: window–>Preference–>Server–>RuntimeEnvironments->Add搜索server在里面找到RuntimeEnviror并点击Add点击电脑......
  • hadoop集群配置
    进入hadoop的etc目录下找到配置文件cd /opt/module/hadoop-3.1.3/etc/hadoop   配置core-site.xml指定NameNode的地址指定hadoop数据的存储目录<configurati......
  • springboot切换web服务器
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:s......