我正在尝试编写一个自动配置库,为任何 DataSource
. 我已经写了一个子类,我会打电话给你 CustomDataSource
它覆盖了 DataSource
.
@Configuration
@ConditionalOnBean(DataSource.class)
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class CustomDataSourceAutoConfiguration {
private final DataSource dataSource;
public CustomDataSourceAutoConfiguration(DataSource dataSource) {
this.dataSource = dataSource;
}
@Primary
@Bean
public CustomDataSource customDataSource() {
return new CustomDataSource(dataSource);
}
}
但我找不到一个方法让我做我想做的事。它将始终导致循环引用和例外:
BeanCurrentlyInCreationException: Error creating bean with name 'customDataSource': Requested bean is currently in creation: Is there an unresolvable circular reference?
有办法吗?
1条答案
按热度按时间cvxl0en21#
我通过实现
BeanPostProcessor
:这个
postProcessAfterInitialization
方法可以显式地用于在代理中 Package bean,引用BeanPostProcessor
文档:[…]用代理封装bean的后处理器通常会实现
postProcessAfterInitialization(java.lang.Object, java.lang.String)
.