我有多模块maven项目,其中我有一个共同的部分,我想在应用程序之间共享。
在通用模块中,我正在定义liquibase和db connection的配置。为此,我在application.yaml中有2个profile-prod和common-dev。
spring:
profiles: common-prod
# POSTGRE
datasource:
url: ${DATABASE_URL:jdbc:postgresql://localhost:5432/dbname}
driver-class-name: org.postgresql.Driver
username: pguser
password: pguser
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
hibernate:
ddl-auto: none
properties:
hibernate.default_schema: public
#LIQUIBASE
liquibase:
enabled: true
change-log: /db/changelog/db-changelog-master.xml
drop-first: false
---
spring:
profiles: common-dev
# POSTGRE
datasource:
url: ${DATABASE_URL:jdbc:postgresql://localhost:5432/dbname-dev}
username: pguserdev
password: pguserdev
#LIQUIBASE
liquibase:
enabled: true
drop-first: true
现在在Web应用程序中我想定义一些其他属性。但是当我将它们包含在application.yaml(在web模块中)时,我认为它会覆盖来自common模块的application.yaml。 所以我需要
如果我重命名公共模块的yaml文件,我可以从这个文件中引用配置文件吗?例如-Dspring.profiles.active = common-common-prod或者我需要将这些配置文件分开来分隔yaml文件?
如果我将web模块配置文件重命名为application-web.yaml,我必须始终包含Web配置文件。我可以忍受这种情况,但在application.yaml中包含配置文件会更简单,并且不关心命令行参数。