java - 如何使用 spring boot + .yaml 创建配置文件?
问题描述
我有带有 2 个属性文件的 Spring Boot 服务器:application-local.properties
和application-test.properties
在每个文件中,我都有用于开发机器和测试的配置。像这样开始:
-Dspring.profiles.active=local
但是在新的 spring boot 项目中,我使用.yaml
配置文件。而且我不明白如何使用profiles
with .yaml
。我尝试阅读文档,但一无所知。你能一步一步解释该怎么做吗?
我需要有两个文件?
application-local.yaml
和application-test.yaml
还是我需要全部写入一个application.yaml
文件?如果在一个文件中,我该如何分离配置?这是我的配置:
server:
path: ***
port: ***
cxf:
path: ***
spring.datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: oracle.jdbc.OracleDriver
url: ***
username: ***
password: ***
hikari:
minimumIdle: 5
maximumPoolSize: 20
idleTimeout: 30000
poolName: SpringBootJPAHikariCP
maxLifetime: 2000000
connectionTimeout: 30000
connection-test-query: SELECT 1 FROM DUAL
spring.jpa:
show-sql: false
database-platform: org.hibernate.dialect.Oracle10gDialect
properties.hibernate.jdbc.batch_size: 30
properties.hibernate.cache.use_second_level_cache: false
hibernate:
ddl-auto: validate
spring.cache:
ehcache:
config: classpath:ehcache.xml
#app configs
my:
messages-max-count: 5
messages-delay: 100
schedulers-charge-delay: 100
client:
first-server-address: ***
second-server-address: ***
last-server-address: ***
enabled-client: FirstClient
我想创建测试配置文件并更改数据库 url(或更改为 postgreSql),更改maximumPoolSize
属性
解决方案
- 在那里创建
application.yaml
和定义所有默认属性。 - 创建
application-local.yaml
和覆盖配置文件所需的local
属性。 - 创建
application-test.yaml
和覆盖配置文件所需的test
属性。 spring.profiles.active
通过将其作为系统属性 ( for-D
)传递java
或在application.yaml
.
当您使用 运行应用程序时{PROFILE}
,Spring 将application-{PROFILE}.yaml
在application.yaml
.
推荐阅读
- html - HTML Portfolio Template,使用React分离成组件,滚动不起作用,只跳转到部分页面
- c - 使用 if 语句检测用户是否输入了特定的字符或数字
- python - 如何处理延迟加载?
- javascript - 使用javascript将多个数组迭代到对象中
- networking - 如何在 CentOS7 KVM 主机/RHEL7 来宾中配置网络以进行 VLAN 连接
- r - 如何通过 awk/unix/R 中的重复行合并列
- git - 我想直接将原始主分支克隆到 Eclipse 中吗?
- python - 删除 Ruby 后如何修复 macOS Vim 电源线错误
- java - androidx.constraintlayout.widget.Group 不使用 setTranslationY
- here-api - Here.com Routing API 替换 Google Maps Directions - 我可以在 restful URL 查询中传递地址吗?