例如:
我想存储员工详细信息,例如
private Long id;
private String Name;
private String country;
现在,我还想在MongoDB中存储一个Image和上面的数据。
在我的控制器中,我将下面的代码写成了一个片段
Employee employee2 = new Employee();
employee2.setEmpId(1002);
employee2.setEmpName("Dinesh Rajput");
employee2.setCountry("India");
mongoOperations.save(employee2);
员工数据在DB中创建。现在如何将图像与它一起存储。
答案 0 :(得分:1)
答案 1 :(得分:1)
假设您正在使用Spring Boot,Spring Data Mongo,那么您应该考虑将Mongo的Spring Content用于内容存储部分,如下所示:
将以下依赖项添加到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模块的依赖项,它将为GridF注入EmployeeImageStore
存储的实现,以及支持完整CRUD功能的控制器实现并将这些操作映射到到底层商店界面。 REST端点将在/employeeImages
下提供。
即。
curl -X PUT /employeeImages/{employeeId}
将创建或更新员工的形象
curl -X GET /employeeImages/{employeeId}
将获取员工的图片
curl -X DELETE /employeeImages/{employeeId}
将删除员工的图片
有几个入门指南here。他们将Spring Content用于文件系统,但模块可以互换。 Mongo参考指南是here。还有一个教程视频here。
HTH
答案 2 :(得分:0)