gpt4 book ai didi

java - Spring 启动启动器。如何在启动器 'x' 完成 beans 创建之前停止初始化其他启动器?

转载 作者:行者123 更新时间:2023-11-29 14:33:12 25 4
gpt4 key购买 nike

我找到了 postgresql-embedded并基于这个项目写一个 spring-boot-starter 来测试海豚。在运行时在项目中添加启动器依赖项后,它失败并出现下一个错误:

org.postgresql.util.PSQLException: FATAL: password authentication failed for user "user"

application.properties

embedded.postgres.database-name=test
embedded.postgres.username=user
embedded.postgres.password=user
embedded.postgres.port=5433

spring.datasource.url=jdbc:postgresql://localhost:5433/test
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username=user
spring.datasource.password=user
spring.jpa.database=POSTGRESQL

原因是 spring-boot-starter-data-jpa 在我启动嵌入式 PostgreSQL 的启动器之前运行。是否可以设置启动器的优先级或任何其他方式?

入门资源: https://github.com/esempla/spring-boot-starter-embedded-postgres

最佳答案

您需要为从 DataSource bean 启动 Postgres 的 bean 设置依赖项。您可以在启动器中使用 BeanFactoryPostProcessor 来完成此操作。您可能想从 Boot 自己的 AbstractDependsOnBeanFactoryPostProcessor 中获取灵感, 它的具体子类如 MongoClientDependsOnBeanFactoryPostProcessor , 以及如何 used in auto-configuration .

关于java - Spring 启动启动器。如何在启动器 'x' 完成 beans 创建之前停止初始化其他启动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48623506/

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