参考资料:
在实际项目开发中,在不同的开发阶段会存在不同的开发环境.
一般分为开发环境(dev
),测试环境(test
),生产环境(product
).
如下图所示,不同的开发环境一般都会有一套自己的配置文件.
⏹application.yml主配置文件
spring:
profiles:
# 激活开发环境.若想激活测试环境,则改为test;若想激活线上环境,则改为product
active: dev
⏹application-dev.yml
spring:
datasource:
url: jdbc:mysql://192.168.10.231/blog_dev
username: root
password: mysql_dev
driver-class-name: com.mysql.cj.jdbc.Driver
custom:
count: 100
# 开发环境特有的配置信息
info: dev_environment
⏹application-test.yml
spring:
datasource:
url: jdbc:mysql://192.168.10.231/blog_test
username: root
password: mysql_test
driver-class-name: com.mysql.cj.jdbc.Driver
custom:
count: 200
# 测试环境特有的配置信息
info: test_environment
⏹application-product.yml
spring:
datasource:
url: jdbc:mysql://192.168.10.231/blog_product
username: root
password: mysql_product
driver-class-name: com.mysql.cj.jdbc.Driver
custom:
count: 300
# 生产环境特有的配置信息
info: product_environment
⏹创建一个配置文件类,读取配置文件中的信息
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration("configInfo")
public class SettingConfig {
@Value("${custom.info}")
public String info;
}
⏹前台使用Thymeleaf展示配置文件信息
DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<script type="text/javascript" th:src="@{/js/public/jquery-3.6.0.min.js}">script>
<script type="text/javascript" th:src="@{/js/common/common.js}">script>
<title>展示配置文件信息title>
head>
<body>
<h2 id="info">h2>
body>
<script th:inline="javascript">
// 后台配置文件中的信息
const info = [[${@configInfo.info}]];
$(function () {
$("#info").text(info);
});
script>
html>
⏹当配置激活为dev的时候
⏹当配置激活为test的时候
⏹方式1
--spring.profiles.active
指定生产环境--server.port=8888
指定端口号java -jar jmw-0.0.1-SNAPSHOT.jar --spring.profiles.active=product --server.port=8888
效果
⏹方式2
-Dspring.profiles.active
用于指定生产环境-Dspring.profiles.active
不能放在命令行后面,需要放在jar包名称之前java -jar -Dspring.profiles.active=test jmw-0.0.1-SNAPSHOT.jar
效果