jar包里面都会有配置文件,包含数据库连接、应用程序端口等信息。例如spring boot程序打包后的application.properties文件。然而在程序部署的时候,配置文件里面的信息需要替换为实际的参数,因此涉及到了环境变量的映射。
新建一个spring boot项目,并打成jar包
image.png
application.properties文件代码如下:
name=${NAME:aaa}
age=${AGE:20}
HelloController.java文件代码如下:
package com.hello.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloController {
@Value("${name}")
private String name;
@Value("${age}")
private int age;
@GetMapping("/print")
public String print(){
return "名字:"+name +",年龄:"+ age;
}
}
1、window系统下的环境变量映射
启动jar包,直接访问,如下:
image.png
在环境变量中新建NAME变量,然后重新打开cmd控制台以及重启jar包,再访问,如下:
image.png
image.png
2、linux(centos7)物理机下的环境变量映射
输入以下命令,新建临时环境变量:
export NAME=111
export AGE=100
启动jar包,访问如下:
image.png
3、docker容器下的环境变量映射
将程序直接打包成镜像,启动命令如下:
docker run -d -p 8081:8080 -e NAME=QQQ -e AGE=10 --name=hello hello:1.0
访问如下:
image.png