我们在应用程序中使用分层组织的 Spring Boot 属性文件。例如,
我们的 application.properties 将只包含一行。
spring.profiles.include = logging, kafka, oracle, misc
这里用逗号分隔的所有值都是application-logging.properties
它所引用的其他属性文件(即等等)(我们选择这个是为了在不同环境中的可重用性)
我还有另一个application-h2.properties
可以在测试时包含的属性文件。因此,当我测试时,我的 application.properties 将如下所示。
spring.profiles.include = logging, kafka, h2, misc
一直困扰我的问题是我的应用程序在启动时总是在考虑 h2 数据库,尽管我包括 oracle。
这是我的application-oracle.properties
文件的外观。
spring.datasource.url=${ORACLE_URL}
spring.datasource.username=${ORACLE_USERNAME}
spring.datasource.password=${ORACLE_PASSWORD}
spring.jpa.show-sql=true
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.properties.hibernate.jdbc.time_zone = UTC
我必须启用 Oracle 的唯一方法是删除 h2 属性文件,并从 gradle 构建文件中删除 h2 依赖项。
感谢你的帮助!