解决方案:
@Bean
public DataSourcePoolMetadataProvider getMetadata(DataSource encryptDataSource){
return dataSource -> {
if(dataSource instanceof EncryptDataSource && encryptDataSource instanceof EncryptDataSource ){
return new ShardingSphereDruidDataSourcePoolMetadata((EncryptDataSource) encryptDataSource);
}
return null;
};
}
public static class ShardingSphereDruidDataSourcePoolMetadata extends AbstractDataSourcePoolMetadata<EncryptDataSource> {
private final DruidDataSource druidDataSource;
protected ShardingSphereDruidDataSourcePoolMetadata(EncryptDataSource dataSource) {
super(dataSource);
this.druidDataSource = (DruidDataSource) dataSource.getDataSource();
}
@Override
public Integer getActive() {
return druidDataSource.getActiveCount();
}