Springboot将accessToke写入Redisk 缓存,springboot集成Redis出现报错
No qualifying bean of type ‘org.springframework.data.redis.connection.RedisConnectionFactory’
原因:我们在pom.xml中引入了spring-boot-starter-data-redis却没有引入redis.client
解决方式:增加redis client依赖即可
1
2
3
4
5
|
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version> 2.9 . 0 </version> </dependency> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019 - 01 - 25 15 : 20 : 06.117 ERROR 10180 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of method stringRedisTemplate in org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration required a bean of type 'org.springframework.data.redis.connection.RedisConnectionFactory' that could not be found. The injection point has the following annotations: - @org .springframework.beans.factory.annotation.Autowired(required= true ) The following candidates were found but could not be injected: - Bean method 'redisConnectionFactory' in 'JedisConnectionConfiguration' not loaded because @ConditionalOnClass did not find required classes 'org.apache.commons.pool2.impl.GenericObjectPool' , 'redis.clients.jedis.Jedis' - Bean method 'redisConnectionFactory' in 'LettuceConnectionConfiguration' 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. 2019 - 01 - 25 15 : 20 : 06.117 ERROR 10180 --- [ main] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener @7bd7d6d6 ] to prepare test instance [com.ucsmy.platform.smartdata.SmartdataApplicationTests @660acfb ] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java: 125 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java: 108 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java: 118 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java: 83 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java: 44 ) ~[spring-boot-test-autoconfigure- 2.1 . 2 .RELEASE.jar: 2.1 . 2 .RELEASE] at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java: 246 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java: 227 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$ 1 .runReflectiveCall(SpringJUnit4ClassRunner.java: 289 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 12 ) [junit- 4.12 .jar: 4.12 ] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java: 291 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 246 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 97 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.junit.runners.ParentRunner$ 3 .run(ParentRunner.java: 290 ) [junit- 4.12 .jar: 4.12 ] at org.junit.runners.ParentRunner$ 1 .schedule(ParentRunner.java: 71 ) [junit- 4.12 .jar: 4.12 ] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java: 288 ) [junit- 4.12 .jar: 4.12 ] at org.junit.runners.ParentRunner.access$ 000 (ParentRunner.java: 58 ) [junit- 4.12 .jar: 4.12 ] at org.junit.runners.ParentRunner$ 2 .evaluate(ParentRunner.java: 268 ) [junit- 4.12 .jar: 4.12 ] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java: 61 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java: 70 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.junit.runners.ParentRunner.run(ParentRunner.java: 363 ) [junit- 4.12 .jar: 4.12 ] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java: 190 ) [spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.junit.runner.JUnitCore.run(JUnitCore.java: 137 ) [junit- 4.12 .jar: 4.12 ] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 68 ) [junit-rt.jar:na] at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java: 47 ) [junit-rt.jar:na] at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java: 242 ) [junit-rt.jar:na] at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: 70 ) [junit-rt.jar:na] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redisDao' : Unsatisfied dependency expressed through field 'redisTemplate' ; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'stringRedisTemplate' defined in class path resource [org/springframework/boot/autoconfigure/data/redis/RedisAutoConfiguration. class ]: Unsatisfied dependency expressed through method 'stringRedisTemplate' parameter 0 ; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.redis.connection.RedisConnectionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java: 596 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java: 90 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java: 374 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java: 1378 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java: 575 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 498 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$ 0 (AbstractBeanFactory.java: 320 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java: 222 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java: 318 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java: 199 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java: 846 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java: 863 ) ~[spring-context- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java: 546 ) ~[spring-context- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java: 775 ) ~[spring-boot- 2.1 . 2 .RELEASE.jar: 2.1 . 2 .RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java: 397 ) ~[spring-boot- 2.1 . 2 .RELEASE.jar: 2.1 . 2 .RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java: 316 ) ~[spring-boot- 2.1 . 2 .RELEASE.jar: 2.1 . 2 .RELEASE] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java: 127 ) ~[spring-boot-test- 2.1 . 2 .RELEASE.jar: 2.1 . 2 .RELEASE] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java: 99 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java: 117 ) ~[spring-test- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] ... 25 common frames omitted Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'stringRedisTemplate' defined in class path resource [org/springframework/boot/autoconfigure/data/redis/RedisAutoConfiguration. class ]: Unsatisfied dependency expressed through method 'stringRedisTemplate' parameter 0 ; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.redis.connection.RedisConnectionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java: 769 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java: 509 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java: 1288 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java: 1127 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java: 538 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 498 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$ 0 (AbstractBeanFactory.java: 320 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java: 222 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java: 318 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java: 199 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java: 277 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java: 1244 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java: 1164 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java: 593 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] ... 43 common frames omitted Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.redis.connection.RedisConnectionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java: 1651 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java: 1210 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java: 1164 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java: 857 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java: 760 ) ~[spring-beans- 5.1 . 4 .RELEASE.jar: 5.1 . 4 .RELEASE] ... 56 common frames omitted |