gpt4 book ai didi

java - Spring应用程序的库模块如何向应用程序的 `application.yml` 添加额外的配置?

转载 作者:行者123 更新时间:2023-12-01 17:00:52 26 4
gpt4 key购买 nike

我有一个使用 JDBC 的 Maven 构建的 Spring Boot 应用程序。 application.yml 文件具有

spring:
application:
(stuff)
datasource:
url: jdbc:informix-sqli://......
driver-class-name: com.informix.jdbc.IfxDriver

我想将 JDBC 特定部分移至库中,因此现在 app/src/main/resources/application.yml 仅包含

spring:
application:
(stuff)

datasource配置参数需要存在于库存储库中。我尝试使用创建 lib/src/main/resources/application.yml

spring:
datasource:
url: jdbc:informix-sqli://......
driver-class-name: com.informix.jdbc.IfxDriver

希望在 Spring 加载时这两个 yml 文件都能被拾取并合并。显然不是。

库和应用程序构建得很好,但是当我运行它时

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

如何将库中的配置合并到应用程序中的 application.yml 配置中?

最佳答案

我一直发现子模块的外部配置与 spring-boot 的“合并”在最坏的情况下会出现问题,在最好的情况下会令人困惑。我现在使用两种方法之一组织所有外部配置。但首先,您应该了解多种指定外部配置的方法:

我以前会指定多个位置,并且这种方法有效。但是,我现在通常使用两种方法之一来避免混淆:

  • 我在启动 Spring Boot 应用程序时使用配置文件并在运行时指定多个配置文件。即多个配置文件,如“shared-common、shared-jdbc、deploy-prod”,它将从子模块加载“application-shared-jdbc.yml”。

  • 我创建的模块只包含由所有相关模块使用的配置文件,通常具有用于不同配置场景的多个配置文件。所有其他模块(可执行文件和库)都依赖于此共享配置模块。

AFAICT,spring-boot 的外部配置处理设置不适合独立子模块配置。它更注重配置属于运行时/可执行模块而不是库的概念。

关于java - Spring应用程序的库模块如何向应用程序的 `application.yml` 添加额外的配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61506907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com