application.yaml
大约 2 分钟java
概述
IDEA 中运行项目可以在 run/debug configuration 中设置属性 active profiles = local 设置启动项目时使用的配置文件,不需要修改根配置文件 application.yml 中的 spring.profiles.active
案例
变量
关于 application.yaml 对于多环境的配置有两种用法,都是通过指定使用配置文件的名称来适应不同的开发环境,一种是在 application.yaml 中单纯的指定使用的配置文件,所有配置都在子配置文件中。一种是在 application.yaml 中指定大部分相同的配置,在每个子配置文件中设置变量的不同值来适应不同的开发环境,下面是第二种用法的案例
server:
port: 8080
spring:
application:
name: hm-service
profiles:
active: dev
datasource:
url: jdbc:mysql://${hm.db.host}:3306/hmall?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: ${hm.db.pw}
mybatis-plus:
configuration:
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
global-config:
db-config:
update-strategy: not_null
id-type: auto
logging:
level:
com.hmall: debug
pattern:
dateformat: HH:mm:ss:SSS
file:
path: "logs/${spring.application.name}"
knife4j:
enable: true
openapi:
title: 黑马商城接口文档
description: "黑马商城接口文档"
email: zhanghuyi@itcast.cn
concat: 虎哥
url: https://www.itcast.cn
version: v1.0.0
group:
default:
group-name: default
api-rule: package
api-rule-resources:
- com.hmall.controller
hm:
jwt:
location: classpath:hmall.jks
alias: hmall
password: hmall123
tokenTTL: 30m
auth:
excludePaths:
- /search/**
- /users/login
- /items/**
- /hi
# keytool -genkeypair -alias hmall -keyalg RSA -keypass hmall123 -keystore hmall.jks -storepass hmall123
环境 dev 的配置如下
hm:
db:
host: mysql
pw: 123
环境 local 的配置如下
hm:
db:
host: 192.168.150.101 # 修改为你自己的虚拟机IP地址
pw: 123 # 修改为docker中的MySQL密码
如上面所示,根配置文件通过 ${hm.db.host} 的语法使用变量,使用具体环境中的变量。
部署时的用法
应用程序参数位置
运行 java 进程的命令参数正确顺序是 java [JVM参数] -jar [jar包] [应用参数],所以使用外部配置文件的参数应该写在 jar包 的后面,例如
/usr/local/java/bin/java -Xms256m -Xmx256m -DSERVICE_LOG_FOLDER=/projs/visitor/logs -jar /projs/visitor/backend/visitor.jar --spring.config.location=/projs/visitor/backend/application.yml -Dfile.encoding=UTF-8 -Dloader.verbose=true
# 上面的直接指定外置配置文件的写法也可以类似下面的 --spring.profiles.active=prod,common 激活多个配置文件,例如
java -jar order-service.jar --spring.config.location=/projs/visitor/backend/application.yml,/projs/visitor/backend/application-comm.yml
或者是下面的写法
java -jar order-service.jar --spring.profiles.active=prod
# 同时激活多个配置文件
java -jar order-service.jar --spring.profiles.active=prod,common
# 后面的配置会覆盖前面的配置,如上面的命令,配置文件 application-comm.yml 中的会覆盖 application-prod.yml 中的同名配置项
