NoSuchMethodError: org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute

后端 未结 3 699
萌比男神i
萌比男神i 2021-02-08 00:01

I am trying to use spring-data-redis in a spring-boot application to work with redis. I am creating JedisConnectionFactory as follows:

RedisStandalo         


        
相关标签:
3条回答
  • 2021-02-08 00:36

    You need to update your spring-boot version to 2.0.0+.

    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:2.0.0.RELEASE')
        compile("org.springframework:spring-web")
        compile('org.slf4j:slf4j-api:+')
    }
    

    This will use spring-core 5.0.0+, which is compatible with this version of spring-data-redis.

    0 讨论(0)
  • 2021-02-08 00:41

    Even though many people benefit from this framework, sometimes it takes more time troubleshooting its dependencies. It's a known issue and I had the same problem as below.

    java.lang.NoSuchMethodError: org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute(Ljava/lang/String;)Ljava/util/Optional; at org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension.postProcess(JpaRepositoryConfigExtension.java:125) ~[spring-data-jpa-2.0.2.RELEASE.jar:2.0.2.RELEASE]

    I paid attention to the 1st jar file and its version - 2.0.2 and removed of the file .. spring-data-jpa-2.0.2.RELEASE.jar. After that I let parent decide it's dependencies and it downloaded 1.10.5 version.

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
     ....
    </dependencies>
    

    spring-data-jpa-2.0.2.RELEASE.jar (conflict with parent)

    spring-data-jpa-1.10.5.RELEASE.jar (resolved version)

    Everyone might have different versions when they run into this error. But it would be faster if you double check with it's dependencies' version first.

    0 讨论(0)
  • 2021-02-08 00:47

    Your issue comes from incompatibilities between Spring Boot, Spring Data Commons, and Spring Data Redis.

    Ideally, you don't specify any versions when using Spring Boot's Gradle plugin as Spring Boot comes with dependency management for your dependencies ensuring compatibility across the references libraries.

    In general, Spring Boot should be your master for dependency versions. Spring Data 2.x is not compatible with Spring Boot 1.x. Please upgrade either to a recent Spring Boot milestone (2.0 M7 as of now) or downgrade Spring Data Redis to 1.7.x.

    0 讨论(0)
提交回复
热议问题