在Spring Boot自动配置中使用子类扩展java数据源
我正在尝试编写一个自动配置库,它向任何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 楼答案
我通过实现
BeanPostProcessor
找到了解决这个问题的方法:postProcessAfterInitialization
方法可以显式地用于在代理中包装bean,引用^{