项目之前用的spring-data-jpa,版本是1.1.0.RELEASE,依赖关系如下:
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.1.0.RELEASE</version> </dependency>
后由于业务扩展,需要增加mongodb,采用关系型数据库和nosql联合持久化,因此加入了spring-data-mongodb,当前最新版本是1.2.0.RELEASE,依赖关系如下:
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.0.RELEASE</version> </dependency>
添加后启动项目,Spring配置检查失败,报错如下:
org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'repository:repository' to a(n) 'type definition' component.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.getGlobalDecl(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexContent(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.traverseSchemas(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
经调查发现,是因为Spring的jpa包和mongodb包的依赖关系有冲突导致的,在github上找到用来解决spring多包依赖冲突的工程,地址为:https://github.com/SpringSource/spring-data-multistore-test,该工程的pom文件说明了spring-data不同包不同版本之间的共存关系,根据该文件配置jar包,将jpa改为1.3.0.RELEASE。最终依赖如下:
<!-- spring data jpa --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>1.3.0.RELEASE</version> </dependency> <!-- spring data mongodb --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.0.RELEASE</version> </dependency>
相关推荐
- `pom.xml` 文件:这是 Maven 项目的配置文件,定义了项目依赖,包括 Spring Boot Starter Web 和 Spring Data JPA。 - `application.properties` 或 `application.yml`:这是 Spring Boot 的配置文件,可能包含...
它包括对JPA、MongoDB、Neo4j等的适配器,使开发者可以利用Spring的依赖注入和事务管理等功能。 3. **Spring Data MongoDB核心组件**: - **MongoTemplate**:这是Spring Data MongoDB的主要操作接口,它提供了...
- 首先,需要在项目中添加Spring和Spring Data MongoDB的依赖。这通常通过Maven或Gradle的配置文件完成。 - 然后,配置MongoDB的连接信息,如主机地址、端口、数据库名等,通常在Spring的配置文件中完成。 - 创建...
总之,Spring Data Commons 1.13.0.RELEASE作为Spring Data项目的基础,提供了强大的数据访问抽象和集成能力,使得开发人员可以更加专注于业务逻辑,而不是底层数据访问的细节。它支持多种数据存储,具备高度的可...
#### 三、SpringData方法定义规范 Spring Data JPA 通过定义方法名的约定来推断方法的行为。以下是一些常用的方法名前缀和示例: - **查询所有数据**:`findAll()` 或 `findUsers()`(假设实体类名为 User)。 - *...
Spring Data JPA的学习指南详细介绍了该框架的核心概念、查询方法的定义、自定义存储库实现、JPA存储库的介绍、查询策略、事务性、锁定、审计和其他高级特性。 核心概念部分主要介绍了Spring Data JPA的基本思想,...
Spring Data Commons 不仅适用于 JPA,还支持 MongoDB、Neo4j、Cassandra 等多种数据存储。这意味着,无论你选择哪种数据库,都可以享受到 Spring Data Commons 提供的便利。 总的来说,Spring Data Commons 1.2.0....
Spring Data 是一个由 Spring 社区开发的框架,旨在简化数据访问层的开发工作,它提供了与各种持久化技术(如 JPA、MongoDB、Neo4j、Redis 等)集成的统一接口。这个"spring-data-应用源码"包含了一些示例项目,可以...
最后,Spring Data Commons 与 Spring Framework 的其他模块紧密集成,如 Spring JDBC、Spring Data JPA 和 Spring Data MongoDB,这意味着开发者可以无缝地在不同数据存储之间切换,同时保持一致的编程模型和工具...
压缩包中的“SpringData”可能就是包含了这些依赖的文件夹,里面可能有`.jar`文件或者`.pom.xml`文件,用于构建工具导入。 集成Spring Data到Spring应用中,还需要配置相关的Bean,如DataSource、...
本项目涉及的是Spring 4.2版本,它是一个成熟且稳定的框架,提供了全面的面向切面编程(AOP)支持、依赖注入(DI)、数据访问/集成、Web服务等功能。这里我们将详细讨论Spring MVC、Spring Data以及JPA和Hibernate的...
1. **简单的数据访问API**:通过Spring的Repository抽象,提供了一种声明式的方式来存取GemFire的数据,类似于JPA和MongoDB的Spring Data支持。 2. **自动配置**:Spring Boot的应用可以自动配置GemFire客户端连接...
Spring Data提供了一种统一的访问数据的方式,无论你是使用JPA、MongoDB还是其他数据库。同时,Spring Security也进行了更新,提供了更强大的安全防护机制,包括认证、授权以及加密等功能。 在“libs”这个压缩包中...
1. **添加依赖**:在项目pom.xml文件中引入SpringData JPA和对应的数据库驱动依赖。 2. **配置JPA**:在Spring的配置文件中,设置JPA的实体扫描路径、数据源、持久化单元名称等信息。 3. **定义Repository接口**:...
Spring Data Commons 是 Spring Data 框架的一个核心模块,它为其他 Spring Data 模块提供了通用的基础设施和支持。Spring Data 的目标是简化数据库访问,并通过一致的编程模型和方法来增强现代数据存取技术,如关系...
1. **起步依赖(Starter Dependency)**:SpringBoot 通过 starter 依赖简化了配置,对于 Spring Data JPA,我们需要在 Maven 或 Gradle 项目中添加 `spring-boot-starter-data-jpa` 依赖。 2. **配置**:在 `...
5. **Spring Data**:这是一个模块,用于简化数据库访问,支持JPA、JDBC、MongoDB等多种数据存储方式,提供了一致的API来操作数据。 6. **Spring Security**:它是Spring框架的安全模块,提供了一套全面的安全管理...
3. **数据访问**:"spring-boot-sample-data-jpa"和"spring-boot-sample-data-mongodb"分别演示了如何与关系型数据库(如MySQL、PostgreSQL)和非关系型数据库(如MongoDB)集成,使用JPA和Spring Data进行数据操作...
弹簧数据jpa数据表该项目是项目的扩展,旨在简化启用了服务器端处理的jQuery插件使用。 这将允许您处理DataTables发送的针对Spring @RestController页面上每条信息绘制的Ajax请求(即,在分页,排序,搜索等时)。 ...
2. **导入相关依赖**:根据你的项目需求,选择合适的SpringData模块并添加相应的Maven依赖。例如,如果你需要使用Spring Data JPA,则需要添加JPA和Hibernate的相关依赖。 ```xml <!-- Spring Data JPA --> ...