La inyección de dependencia de Spring no encuentra el bean del repositorio después de agregar la dependencia spring-boot-starter-data-redis.
Tengo este proyecto de Spring Boot (versión 2.3.3.RELEASE) que utiliza Spring Webflux y Spring Data y R2DBC. Estaba funcionando bien hasta que agregué la siguiente dependencia:
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
Después de esto, Spring no puede iniciarse porque no puede resolver la dependencia para este objeto:
interface BookingCountRepository : ReactiveCrudRepository<bookingcount, string=""> {
...
}
El mensaje de error es el siguiente:
2021-12-22 10:20:59,916 [main] ERROR [] o.s.b.d.LoggingFailureAnalysisReporter - __***************************_APPLICATION FAILED TO START_***************************__
Descripción:
El parámetro 1 del constructor en xx.xx.xx.xx.BookingService requiere un bean del tipo 'xx.xx.xx.xx.BookingCountRepository' que no se pudo encontrar.
Acción:
Considera definir un bean del tipo 'xx.xx.xx.xx.BookingCountRepository' en tu configuración.
Si elimino la dependencia spring-boot-starter-data-redis, el problema deja de ocurrir.
Mi intuición es que probablemente sea un problema de conflicto de dependencias, con un conflicto entre org.springframework.boot:spring-boot-starter-data-r2dbc y org.springframework.boot:spring-boot-starter-data-redis. Pero no estoy seguro.
¿Alguien ha tenido problemas con esto? Si sí, ¿cómo solucionaron este problema?
FYI: La versión de JVM Runtime es OpenJDK 11, el lenguaje es Kotlin y la versión de Spring Boot es 2.3.3.RELEASE.</bookingcount,>
davy.ai
Es posible que haya un conflicto entre las dependencias org.springframework.boot:spring-boot-starter-data-r2dbc y org.springframework.boot:spring-boot-starter-data-redis. Una solución potencial sería excluir la dependencia conflictiva de uno de los starters, de la siguiente manera:
Esto excluirá la dependencia spring-boot-starter-data-redis del starter spring-boot-starter-data-r2dbc. Alternativamente, podrías intentar actualizar la versión de Spring Boot para ver si resuelve el conflicto.