Использование Spring 4.0 с spring-data-jpa

Я использую Spring 4.0 в своем приложении JavaEE, и я попытался использовать Spring-data-jpa.

однако, когда я добавляю зависимость Spring-data-jpa, я обнаружил, что Spring-data-jpa будет зависеть от Spring-3.x.

тогда мне интересно, что это вызовет какие-либо проблемы? Так как моя заявка будет иметь весну-4.x с пружиной-3.x.

у кого есть такой же опыт?


обновление:

Я использую Весна-данные-jpg-1.4.3:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.4.3.RELEASE</version>
    </dependency>

но когда я запускаю mvn dependency:tree у меня есть это:

+- org.springframework:spring-context:jar:4.0.0.RELEASE:compile
|  +- org.springframework:spring-beans:jar:4.0.0.RELEASE:compile
|  +- org.springframework:spring-core:jar:4.0.0.RELEASE:compile
|  |  \- commons-logging:commons-logging:jar:1.1.1:compile
|  \- org.springframework:spring-expression:jar:4.0.0.RELEASE:compile
+- org.springframework:spring-aop:jar:4.0.0.RELEASE:compile
|  \- aopalliance:aopalliance:jar:1.0:compile
+- org.springframework.data:spring-data-jpa:jar:1.4.3.RELEASE:compile
|  +- org.springframework.data:spring-data-commons:jar:1.6.3.RELEASE:compile
|  +- org.springframework:spring-orm:jar:3.1.4.RELEASE:compile
|  |  \- org.springframework:spring-jdbc:jar:3.1.4.RELEASE:compile
|  +- org.springframework:spring-tx:jar:3.1.4.RELEASE:compile
|  +- org.aspectj:aspectjrt:jar:1.7.2:compile
|  +- org.slf4j:slf4j-api:jar:1.7.1:compile
|  \- org.slf4j:jcl-over-slf4j:jar:1.7.1:runtime
+- org.aspectj:aspectjweaver:jar:1.7.4:compile
+- org.springframework:spring-test:jar:4.0.0.RELEASE:test

кажется, что весна 4.0.. смешивается с весны 3.1.4..

1 ответов


Это ошибка в блоке spring-data-jpa 1.4.3.Отпустите пом denepdency.
На самом деле он загружает зависимости spring, которые существуют в этом Maven pom вместо тех, которые вы хотите импортировать.
Короткий ответ-добавить это в качестве родителя в ваш проект maven:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.0.0.RC5</version>
</parent>

чтобы он мог наследовать правильные зависимости.

Другой способ решить эту проблему-использовать <exclusions> тег, чтобы исключить их, а затем импортируйте нужный зависимостей, но это занимает больше времени и не так чисто. Если вы не хотите добавлять spring-boot-start-parent хотя, тогда вот как решить эту ошибку.

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>1.4.1.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
        <exclusion>
         ...
        </exclusion> 
    </exclusions>
</dependency>

подробнее:здесь