在真实的项目开发中,往往是有3套开发环境,本地+测试+生产
至少也需要2套环境 本地+生产
在本地开发的时候,springboot 可以在配置文件中添加多个属性文件,比如
application.properties,
application-dev.proterties
application-test.proterties
application-prod.proterties
其中application.properties,是总的通用的配置文件
剩余的配置文件配置 填写不同环境对应的 数据库,日志路径 等信息
然后application.properties中有这么一个配置
spring.profiles.active=dev
在测试环境运行就改成test,生产就改成prod
发布版本的时候,程序员先在本地进行打包,
打成jar包
上测试了,就用压缩软件把jar包打开,修改spring.profiles.active=test
上生产环境了.就用压缩软件把jar包打开,修改spring.profiles.active=prod
这种方式 太过于麻烦,浪费了大量的时间, 把时间都花在了不该花的地方
其实有一种很简单的方法,就可以解决这个问题,大大提高开发效率,
奈何没人知道,心痛,重复机械的劳动,有可能还会出现字符编码不对,压缩包修改文件导致jar 包不能启动,必须在打包的时候先指定spring.profiles.active=xxx 环境打包
下面分享提高效率的方式
1.新建一个springboot 工程,web项目
2.新建2个文件
application-dev.proterties
application-test.proterties
首先是application-dev.proterties,里面写上
a=hello
然后是application-test.proterties,里面写上
a=world
在总的属性文件 application.properties, 写入
spring.profiles.active=dev
属性文件全部ok
下面是对属性文件进行读取,新建一个Controller
package com.example.multiennvi.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
public class Test {
@Value("${a}")
private String aa;
@RequestMapping("/helllo")
public String aa(){
System.out.println(aa);
return aa;
}
}
属性文件会对a这个熟悉感值进行读取,
当我们进行本地开发的时候,由于总的属性文件 application.properties 里面配置的是dev 的环境,所以启
动的时候就是dev 里面的数据库啊,日志啊 等信息
下面就是开发好了,要上测试环境进行部署了,
以往这个时候,需要程序员手动修改 application.properties中 spring.profiles.active=test
然后打包,
打包好了 ,通过跳板机上传到 测试的linux跑 ,跑起来没问题了.
然后还会有生产环境,再去修改 spring.profiles.active=prod,然后在上传到生产服务器启动
3.正确的做法
首先到打包的目录下面
一般我们的启动方式是
java -jar xxxx.jar
这个时候我们需要在后面多加一点东西
java -jar x.jar --spring.profiles.active=xxx
只要把xxx 修改成对应的dev ,test或者prod 就可以了
就是这么的简单,提搞生产效率的利器命令
首先是指定dev 环境启动,由于总属性文件配置的是dev,所以不指定也是ok 的
下面进行测试:
读取的是hello
关掉,重新指定启动的环境为test
下面进行测试
读取的是world
很简单的一个命令,大大的提高 部署效率,省心,省力.