在演示spring-boot项目中配置spring-session-data-redis
后,bootRun
任务失败,并显示以下消息:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method redisTemplate in org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration required a bean of type 'org.springframework.data.redis.connection.RedisConnectionFactory' that could not be found.
- Bean method 'redisConnectionFactory' not loaded because @ConditionalOnClass did not find required classes 'org.apache.commons.pool2.impl.GenericObjectPool', 'redis.clients.jedis.Jedis'
- Bean method 'redisConnectionFactory' not loaded because @ConditionalOnClass did not find required class 'io.lettuce.core.RedisClient'
Action:
Consider revisiting the entries above or defining a bean of type 'org.springframework.data.redis.connection.RedisConnectionFactory' in your configuration.
我已完成的操作(又称重现步骤):
1.使用Spring Initializr创建一个[带有Java和Spring Boot 2.1.0 M1 + Web依赖的Gradle]项目。
2.按照Spring Session - Spring Boot的说明配置Spring Session。进一步来说:
-添加了
compile 'org.springframework.session:spring-session-data-redis'
build.gradle的依赖项块-通过将
spring.session.store-type=redis
添加到application.properties
文件来配置商店类型-配置连接
属性(在
application.properties
文件中):spring.redis.host
,具有相关值的
spring.redis.password
和spring.redis.port
3.从项目的根目录执行./gradlew bootRun
并收到上述错误问题:
1.据错误消息所知,
RedisConnectionFactory
加载失败,因为找不到Jedis或Lettuce驱动程序。 spring-session-data-redis
是否默认不带这些驱动程序之一?2.如果我要使用Jedis驱动程序,该如何解决此问题?
3.如果我要使用Lettuce驱动程序,如何解决此问题?
最佳答案
1.
如@M.Deinum所述,spring-session-data-redis
(版本2.1.0.M1)不会拉Jedis或Lettuce驱动程序。
2.
添加最新的Jedis驱动程序作为显式依赖项:
dependencies {
// ...
compile 'redis.clients:jedis:2.9.0'
}
3.
添加
spring-boot-starter-data-redis
(引入Lettuce驱动程序)或最新的Lettuce驱动程序作为显式依赖项:dependencies {
// ...
compile 'org.springframework.boot:spring-boot-starter-data-redis'
// OR
compile 'io.lettuce:lettuce-core:5.0.5.RELEASE'
}
关于spring-boot - 配置spring-session-data-redis后无法启动spring-boot应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51742342/