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

标签 java spring mongodb image spring-boot

例如:

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

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/

相关文章:

java - Android:ProgressDialog 圆未显示

javascript - Spring Boot 谷歌地图 SAXParseException

java - MongoDB Spring 的日上限和下限

node.js - MongoClient Node 游标流和数据管道

java - 使用 JUnit4 进行测试时,Spring @transactional 不会启动事务

javascript - 使用 mangojs 模块时出现错误 "this._initialize is not a function"

java - 运行小程序的计算机/浏览器的 IP 地址是多少?

java - 在java中验证C#中的rsa签名

java - Spring 绝地武士。 SCAN 和 KEYS 键不匹配

java - java.util.Currency 的 Mongo spring-data 问题