SpringBoot多环境启动我们在开发过程中可能会采用不同的环境,频繁的转换环境当然不是一个好办法
SpringBoot选择配置多环境来控制环境选择启动
我们从两种不同的配置文件方向来讲解多环境:
- yaml多环境启动:
# yaml采用 --- 来表示环境层级更换 # yaml采用 spring:profiles:active: 环境id 设置启用的环境spring:profiles:active: dev---#开发环境#yaml采用 spring:config:activate:on-profile: 环境id 来定义当前环境id(规范写法)spring:config:activate:on-profile: dev#以下属于环境配置server:port: 80---#生产#yaml采用 spring:profiles: 环境id 来定义当前环境id(旧版写法,同样适用)spring:profiles: pro#以下属于环境配置server:port: 81---#测试#yaml采用 spring:profiles: 环境id 来定义当前环境id(旧版写法 , 同样适用)spring:profiles: test#以下属于环境配置server:port: 82---
- properties多环境启动:
# application.properties文件(环境主文件)#设置启用的环境spring.profiles.active=pro
# application-dev.properties文件(环境配置文件)# 设置相关资源配置server.port=8080
# application-pro.properties文件(环境配置文件)# 设置相关资源配置server.port=8081
# application-test.properties文件(环境配置文件)# 设置相关资源配置server.port=8082
SpringBoot前端多环境启动我们前面提及过SpringBoot的快速启动直接将jar包打包后发给前端就可以采用命令行启动服务器但是我们的配置可能会导致更多的细节问题:
- 当我们的yaml出现中文注释时,需要将IDEA的encoding均设置为UTF-8
文章插图
- 当我们的前端需要不同的环境配置时,我们不能在后台手动设置默认环境,因而需要采用指令设置
前端在调用时 , 可以采用指令来更改默认环境默认开启服务器java -jar jar包名称.jar更换默认条件开启服务器样板java -jar jar包名称.jar --配置属性=配置值更换默认环境开启服务器java -jar jar包名称.jar --spring.profiles.active=test更换默认端口号开启服务器java -jar jar包名称.jar --server.port=88更换条件可以叠加使用java -jar jar包名称.jar --spring.profiles.active=test --server.port=88
SpringBoot多环境兼容问题SpringBoot中存在有很多的环境设置,不仅如此,包括有Maven也存在有多环境配置那么Maven的多环境配置优先级和SpringBoot的多环境配置优先级谁的更高呢?
- 我们的package操作是由Maven来完成的
- 多环境优先级:Maven > SpringBoot
- Maven中配置多环境属性
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version></parent><groupId>com.itheima</groupId><artifactId>springboot_05_maven_and_boot_profile</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!--开启${}占位符作用于yaml文件中的解析--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.2.0</version><configuration><encoding>UTF-8</encoding><useDefaultDelimiters>true</useDefaultDelimiters></configuration></plugin></plugins></build><!--配置多个环境--><profiles><!--开发环境--><profile><id>dev</id><!--给出属性值--><properties><profile.active>dev</profile.active></properties></profile><!--生产环境--><profile><id>pro</id><!--给出属性值--><properties><profile.active>pro</profile.active></properties><!--默认为生产环境--><activation><activeByDefault>true</activeByDefault></activation></profile><!--测试环境--><profile><id>test</id><!--给出属性值--><properties><profile.active>test</profile.active></properties></profile></profiles></project>
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- DNF怎么获取徽章(dnf徽章毕业要多少钱)
- 荣耀pro60手机怎么跟电脑连接
- 手机如何连接电脑界面(手机连接电脑设置界面)
- 手机与电脑怎么连接(vivo手机连接电脑方法)
- 我的世界中怎么驯服马(马吃什么驯服我的世界)
- 手机连接电脑怎么看手机里的文档(手机用数据线连接电脑)
- 手机怎样连接电脑方法(vivo手机连接电脑方法)
- envoy开发调试环境搭建
- 我的世界如何驯马(我的世界里马如何驯骑)
- 我的世界怎么控制马(我的世界驯服大全)