我想使用最新版本的spring data mongodb,以便使用全文搜索功能,但我不知道如何使用spring boot starter data mongodb依赖项来指定这一点。
你可以在这里阅读:没有指定spring-data-mongodb版本的maven repository。
这是我的pom文件:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Rest -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<!-- Spring Boot Test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring MongoDB integration -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
@sendon1982的回答对我有用。这是我的POM.XML的一个例子。我在这里添加它作为答案,因为我无法粘贴我的pom文件作为评论到sendon1982答案...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/>
</parent>
<groupId>test.barry</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<start-class>test.barry.Main</start-class>
<mongodb.version>4.1.0</mongodb.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.1.0</version>
</dependency>
</dependencies>
</project>
您可以在父项目pom文件中找到mongodb依赖项
/../.m2/repository/org/springframework/boot/spring-boot-dependencies/2.3.0.RELEASE/spring-boot-dependencies-2.3.0.RELEASE.pom
该文件定义了其他库SpringBoot使用的所有依赖版本
<properties>
<activemq.version>5.15.12</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
...
<mongodb.version>4.0.3</mongodb.version>
...
</properties>
因此,如果您想为mongoDB使用不同的版本,请在您的pom文件中定义一个属性来覆盖默认的属性,例如(我认为这只有在您使用spring-boot-starter-父
作为父文件时才有效)
<properties>
<mongodb.version>3.11.2</mongodb.version>
</properties>
Spring Boot在spring-boot-依赖项项目中定义了它的所有依赖项和依赖项版本。这个项目只包含一个只有依赖项和版本作为属性的pom。
Spring Data以所谓的发布系列发布其所有兼容版本,这确保了该版本的所有依赖项都能协同工作。
当你仔细观察pom时,你会看到一个名为spring-data-releasetrain.version
的maven属性,对于即将到来的Spring Boot 1.2,它指向最新的发布火车版本Evans-RELEASE
。1.1.7 版本指向以前的版本 Dijkstra-SR4
。我建议从1.1.6升级到1.1.7以防万一。
您的项目已经将< code > spring-boot-starter-parent 项目作为其父项目,因此理论上升级Spring数据版本应该像覆盖指定属性一样简单。
<properties>
<spring-data-releasetrain.version>Evans-RELEASE</spring-data-releasetrain.version>
</properties>
如前所述,使用发布系列是首选,因为这将确保您获得所有兼容版本。
我使用Spring Boot和Spring Data MongoDB与底层分片MongoDB集群进行接口。我的Spring Boot应用程序通过路由器访问集群。 使用Spring Data MongoDB,可以通过指定对象持久化到的集合,或者默认为类名(第一个字母小写)。这些藏品不需要预先存在;它们可以在运行时创建。 要在MongoDB中分片集合,您需要 1-在数据库上启用分片: 2-在分片数据库
将Java11指定为Spring(或Spring Boot)pom.xml文件中使用的版本的正确方法是什么? 例如,我需要在POM的属性中放入什么值? 对于Java8,我们使用,正如文档所示,对于Java9,我们使用。 我不确定Java11是否是(尽管这似乎不太可能),并且在使用时,我看到它被指定为,但我没有使用编译器插件。 例如。 我到处找都找不到答案,因为几乎所有我读过的文档以及与Java版本
指定Java11作为Spring(或Spring Boot)pom中使用的版本的正确方法是什么。xml文件? 也就是说,我需要在属性? 对于Java8,我们使用,就像留档显示的那样,对于Java9,它是。 我不确定Java 11是否会是(尽管这似乎不太可能),我看到在使用 还是仅仅? 我尝试了这两种方法,我的网络服务器似乎启动正确,编译正确(IntelliJ显示),但是我并不完全相信改变值是什么,
我需要使用spring数据过滤mongodb中的文档,该数据包含nexted数组。我在mongo shell上使用以下聚合查询,它运行良好。但当我通过springdata聚合操作触发该操作时,我得到的是空响应。mongo查询的工作原理是: 我正在使用但不工作的Spring数据代码: 我尝试打破这个聚合函数,它能够项目rssSearchResponse.journeys但$unWind后,它返回空结
问题内容: 目前我上了主要课程: 一个成员类(id,名字..),一个MemberController类: 和一个WebSecurityConfig类: 当我运行“ http:// localhost:8080 / members ”时,我得到一个登录页面,我输入“ user”作为用户&“ user”作为密码,然后得到硬编码的Member。它工作正常,但随后我右键单击了我的项目-按运行方式作为Mav
目前我得到的主要类: 成员类(id,firstname..),MemberController类: 和一个WebSecurityConfig类: 当我运行"http://localhost:8080/members"我得到一个登录页面,我输入"user"作为用户 它会停留在登录页面上。我试图删除依赖关系 出了什么问题?谢谢