Open ZIRAKrezovic opened 6 months ago
It looks like both libraries have defined a bean with the same name - dataSourceNameResolver
.
com.github.gavlyukovskiy.boot.jdbc.decorator.DataSourceNameResolver
and net.ttddyy.observation.boot.autoconfigure.DataSourceNameResolver
.
Since both bean definitions have @ConditionalOnMissingBean
, I think a quick workaround is that if you define either bean with a different name in your application configuration, the one from auto-configuration should back off.
My workaround is as follows
import io.micrometer.observation.ObservationRegistry;
import net.ttddyy.observation.boot.autoconfigure.DataSourceNameResolver;
import net.ttddyy.observation.boot.autoconfigure.DataSourceObservationAutoConfiguration;
import net.ttddyy.observation.boot.autoconfigure.DefaultDataSourceNameResolver;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
@AutoConfiguration(before = DataSourceObservationAutoConfiguration.class)
@ConditionalOnClass({DataSource.class, ObservationRegistry.class})
public class ProjectDataSourceObservationAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public DataSourceNameResolver defaultDataSourceNameResolver() {
return new DefaultDataSourceNameResolver();
}
}
When using JDBC observability linked from official Spring Boot documentation https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.observability -> https://jdbc-observations.github.io/datasource-micrometer/docs/current/docs/html/ and including the mentioned spring boot starter
Application startup fails when datasource-proxy-spring-boot-starter project is also present as a dependency
Error:
Not sure who has to fix their bean naming, but it would be nice if any one of you would fix it :)