在实际做项目的时候,至少有3个运行环境,开发环境、测试环境、生产环境。不同的环境下,存在不同的配置,例如数据库、下载、上传地址等。
在以往的项目开发中,大多数情况下都是将项目放在不同的环境时再修改相应的配置文件,或者自己先将配置复制一份,然后覆盖一下,功能到是不麻烦,但是如果配置文件本身有改动,这样可能在下一次发布时就会忘记在正式环境下修改了,导致项目运行出问题。
而springboot通过配置不同版本的配置文件,则可以避免这些问题。
1.创建开发、测试、生产三个版本的配置文件
为3个配置文件配置不同的端口,和要显示的变量,文件名称就是在默认的配置文件名后加上 “-{profiles}”。如下图
2.配置文件内容
application-dev.properties
application-pro.properties
application-test.properties
3.UserController.java
@Controller
@RequestMapping("user")
public class UserController {
@Value("${msg}")
private String msg;
@ResponseBody
@RequestMapping("hello")
public Map<String, String> hello(){
Map<String, String> map = new HashMap<>();
map.put("msg", msg);
return map;
}
}
4.通过maven打包
右击pom.xml文件 --> Run as --> maven install
注:本案例里使用到了配置文件里定义的变量:msg,所以默认的配置文件application.properties,也需要存在,否则打包报错。
5.获取jar包
项目打包成功后,进入项目的target目录找到jar包we文件,如这里的 : 00-demo-helloworld-0.0.1-SNAPSHOT.jar;将文件拷贝到E盘。
6.运行项目
cmd 打开命令控制行窗口,进入到E盘,输入命令:
java -jar 00-demo-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active={profiles}
例如运行测试环境的配置文件
运行成功后,打开浏览器输入:http://localhost:8282/user/hello 回车后,浏览器打开如下页面,表示配置成功。
依次运行其他2个配置文件,在浏览器里输入http://localhost:8181/user/hello 、http://localhost:8080/user/hello
分别显示如下
均显示了相应的端口信息,标识配置成功。