Spring Boot外部数据源bean

问题描述 投票:0回答:1

我正在尝试创建一个公共库,其中包含微服务所需的一些内容。其中之一是spring-security提供的ACL功能。我最初的想法是从公共库中的@Configuration文件初始化所有与ACL相关的bean,并且每当微服务需要此功能时,我都可以使用@Import注解(到我的微服务项目)来“启用”它。

这些豆有些需要著名的javax.sql.DataSource才能工作,因此在我的common库中,我将其自动接线如下:

@Configuration
public class AclConfiguration {

@Autowired
DataSource dataSource 

[当我决定要进行此配置时,我进入了我的微服务项目(例如,RulesApplication),并在主类(用@SpringBootApplication注释)上,执行以下操作

@SpringBootApplication
@EnableJpaRepositories
@EnableJpaAuditing
@EnableCaching
@Import(AclConfiguration.class)
public class RulesApplication {

.
.
.

问题是,尽管按预期创建了DataSource bean(尽管通过删除@Import进行了验证),但仍无法从公共库中看到它。

每次我从公共库导入配置时,我都会得到一个:

Caused by: java.lang.IllegalArgumentException: DataSource required
    at org.springframework.util.Assert.notNull(Assert.java:198) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]

指示DataSource bean为空。

我在这里想念什么?

spring spring-boot configuration spring-data-jpa datasource
1个回答
0
投票

从一些挖掘中得出。.[[DataSource bean从来没有真正的问题。所有的挫败感是通过在同一个类中双重定义另一个Bean来创建的,这导致所有@Autowired Bean均无法初始化。

作为这项研究的结果(如其他文章所述,bean初始化在共享项目之间正常运行,因此,大多数情况下,此错误将发生在双重定义/错误定义其他bean时。
© www.soinside.com 2019 - 2024. All rights reserved.