一、本地开发调试:
单个环境,本地开发调试时,只要直接执行启动类即可。
多环境开发时(例如同时要部署 开发环境、测试环境、生产环境) 时,可以在application.properties里通过属性 spring.profiles.active=test 这样的方式指定当前环境生效的配置文件。通过这个配置, 会去读取 application-test.properties 配置文件。通过这种方式,将各个环境的配置文件区分开。
二、服务器部署:
服务器部署应用,需要用maven进行打包。打包时,最简单的方式是用springBoot的maven插件进行打包,将程序所有的内容打成一个fat jar
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<configuration>
<finalName>ftCleaner</finalName>
<mainClass>com.xxx.xxx.Application</mainClass>
</configuration>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
然后可以直接执行这个jar包 java -jar XXX.jar
而在进行多环境部署时,有几种方式实现一套代码多环境部署。
1、在jar包外面,直接放一个applicatin.properties,配置文件中指定程序需要读取的配置文件 spring.profiles.active=test springBoot会优先读取这个外部的配置文件。
2、通过运行参数指定包里的生效配置文件
java -jar XXX.jar –spring.profile.active=test -DappName=MyTest arg1
这种方式,注意,springBoot的参数需要使用– 来指定。
而-D可以用来往java执行工具中指定参数,这个参数会作为java进程的参数,用System.getProperties来读取。 而且,在linux服务器上,可以通过jps -ml看到注入的这个appName参数
最后面接的arg1,可以作为启动类的main函数的参数读取到(如果需要的话)