redis로 작업하기 위해 spring-data-redis를 spring-boot 응용 프로그램에서 사용하려고합니다. 다음과 같이 나는 JedisConnectionFactory
를 만드는 오전 :NoSuchMethodError : org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute
RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
configuration.setHostName("localhost");
configuration.setPort(6379);
JedisConnectionFactory connectionFactory = new JedisConnectionFactory(configuration);
그것은 예외를 던졌습니다 :
Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute(Ljava/lang/String;)Ljava/util/Optional;
at org.springframework.data.redis.repository.configuration.RedisRepositoryConfigurationExtension.registerBeansForRoot(RedisRepositoryConfigurationExtension.java:88)
at org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:118)
at org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport.registerBeanDefinitions(AbstractRepositoryConfigurationSourceSupport.java:59)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:352)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:143)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:336)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:246)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:686)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:524)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
at com.test.redis.RedisTesterApplication.main(RedisTesterApplication.java:11)
내 build.gradle :
dependencies {
compile('org.springframework.data:spring-data-redis:2.0.2.RELEASE')
compile('redis.clients:jedis:2.9.0')
compile('org.json:json:20160810')
compile('org.springframework.boot:spring-boot-starter:1.4.2.RELEASE')
compile("org.springframework:spring-web")
compile('org.slf4j:slf4j-api:+')
}
이 때문에 스프링 부팅에 대한 호환되지 않는 종속 버전의인가 봄 데이터 redis? 어떤 버전을 사용할 지 어떻게 알 수 있습니까?
'spring-boot-starter'의 버전을 제거하십시오. 'spring-web' 의존성을'spring-boot-starter-web'으로 바꾸고'spring-data-redis' 의존성을'spring-boot-startter-data-redis' 의존성으로 대체하십시오. 그렇게하면 호환되는 버전을 사용할 수 있습니다. 또한 봄 부팅 시동자가 그 일을 처리 할 때'org.slf4j' 의존성을 필요로하지 않습니다. –