Java Can';t在测试类之外导入org.springframework.mock.web.MockMultipartFile
我试图将数据库中存储为Blob的图像转换为多部分文件,以便在请求时返回给客户端。我以字节[]的形式检索Blob,并尝试将其转换为多部分文件,以服务于客户端 我试着这样做: 但是IntelliJ告诉我,当我导入时,它找不到MockMultipartFile部分:Java Can';t在测试类之外导入org.springframework.mock.web.MockMultipartFile,java,arrays,spring,Java,Arrays,Spring,我试图将数据库中存储为Blob的图像转换为多部分文件,以便在请求时返回给客户端。我以字节[]的形式检索Blob,并尝试将其转换为多部分文件,以服务于客户端 我试着这样做: 但是IntelliJ告诉我,当我导入时,它找不到MockMultipartFile部分:import org.springframework.mock.web.MockMultipartFile 我可以在测试类中导入它,没有问题,但不能在测试类之外。我能在这里做吗 此外,我还尝试用我自己的MultipartFile版本实现一个
import org.springframework.mock.web.MockMultipartFile
我可以在测试类中导入它,没有问题,但不能在测试类之外。我能在这里做吗 此外,我还尝试用我自己的MultipartFile版本实现一个类,如另一个流行答案中所述,但它告诉我它找不到序列化程序
有什么建议吗 您的方法有几个问题
多部分
文件是HTTP请求
格式,不用于响应
Spring
MockMultipartFile
。这很可能是因为您正在使用Maven
,并且依赖项(很可能spring boot starter test
)将范围设置为test
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope><!-- CHANGE THIS TO "runtime" -->
</dependency>
最后,我找到了一个有帮助的软件包
导入org.springframework.mock.web.MockMultipartFile
<properties>
<java.version>1.8</java.version>
<spring.version>5.1.2.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
1.8
5.1.2.1发布
org.springframework
弹簧试验
${spring.version}
org.springframework
弹簧芯
${spring.version}
Hmm,我想我这样做是因为图像是DTO的一个字段,其中包含需要返回给客户机的各种字段(如姓名、电子邮件、地址等),并且图像是该DTO的一部分。我可以制作一种新类型的DTO,但它必须将图像存储为字段,以便在客户端进行处理。我可以改变这种方法吗?好的,客户端浏览器是基于浏览器的吗?如果不是,那么反序列化使用什么?此特定质询的要求没有说明客户端需要什么。我假设它是基于浏览器的,所以我在@ResponseBody中输入一个模板,将填写好的DTO输入到模板中。也许有另一种方法?如果它是基于浏览器的客户端,并且您计划使用JSON进行序列化/反序列化,那么您不能在DTO中传递文件对象。As文件对象不能用JSON
表示。一种方法是将文件对象转换为base64
字符串,在您的情况下,这是可以的,因为您正在返回图像。Base64字符串可以直接用作
,只要我没有在其中尝试映像,它会将字段作为JSON传递回客户端吗?但我会尝试这个黑客…你不应该使用它,因为它只是用于测试。只需使用OutputStream
@M.Deinum将byte[]
直接流式传输到客户机,这是怎么回事?你的肉体能给出一个答案吗?
<properties>
<java.version>1.8</java.version>
<spring.version>5.1.2.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>