gpt4 book ai didi

java - 如何使用 Java 将带有一些数据的图像存储在 MongoDB 中

转载 作者:行者123 更新时间:2023-12-02 02:31:35 25 4
gpt4 key购买 nike

例如:

我想存储员工详细信息,例如

private Long id;
private String Name;
private String country;

现在,我还想将图像与上述数据一起存储在 MongoDB 中。

在我的 Controller 中,我在下面编写了代码片段

Employee employee2 = new Employee(); 
employee2.setEmpId(1002);
employee2.setEmpName("Dinesh Rajput");
employee2.setCountry("India");

mongoOperations.save(employee2);

员工数据在数据库中创建。现在如何将图像与其一起存储。

最佳答案

假设您正在使用 Spring Boot、Spring Data Mongo 那么您应该考虑使用 Spring Content对于 Mongo 来说,内容存储部分如下所示:

将以下依赖项添加到您的 pom.xml

<dependency>
<groupId>com.github.paulcwarren</groupId>
<artifactId>spring-content-mongo-boot-starter</artifactId>
<version>0.0.10</version>
</dependency>
<dependency>
<groupId>com.github.paulcwarren</groupId>
<artifactId>spring-content-rest-boot-starter</artifactId>
<version>0.0.10</version>
</dependency>

确保您的应用程序上下文中存在 GridFsTemplate bean。类似于以下内容:

@Configuration
public class MongoConfig

@Bean
public GridFsTemplate gridFsTemplate() throws Exception {
return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter());
}
...

要允许内容与您的 Employee 实体关联,请为其指定以下属性:

@ContentId
private String contentId;

@ContentLength
private long contentLength = 0L;

@MimeType
private String mimeType = "text/plain";

添加商店界面:

@StoreRestResource(path="employeeImages")
public interface EmployeeImageStore extends ContentStore<Employee, String> {
}

这就是您所需要的。当您的应用程序启动时,Spring Content 将看到对 Mongo/REST 模块的依赖关系,并将注入(inject) GridFs 的 EmployeeImageStore 存储的实现以及支持完整 CRUD 功能和映射的 Controller 的实现这些操作深入到底层存储接口(interface)。 REST 端点将在 /employeeImages 下提供。

curl -X PUT/employeeImages/{employeeId} 将创建或更新员工的图像

curl -X GET/employeeImages/{employeeId} 将获取员工的图像

curl -X DELETE/employeeImages/{employeeId} 将删除员工的图像

有几个入门指南 here 。他们使用 Spring Content 作为文件系统,但模块是可以互换的。 Mongo引用指南是here 。还有教程视频here .

HTH

关于java - 如何使用 Java 将带有一些数据的图像存储在 MongoDB 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47011871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com