Spring Boot 项目优雅返回图片访问

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1415)   2023-03-28 11:29:14

SpringBoot使用@ResponseBody返回图片的实现

以前使用HttpServletResponse可以通过输出流的方式来向前台输出图片。现在大部分都是使用springboot,在使用springboot之后,我们应该如何来修改代码呢?

Spring Boot项目搭建配置略过,可直接从官网简历一个demo

首先写一个Controller类,包括一个方法,如下:

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import java.io.File;
import java.io.FileInputStream;
 
@RestController
@RequestMapping(value="/api/v1")
public class ImageController {
 
  @GetMapping(value = "/image",produces = MediaType.IMAGE_JPEG_VALUE)
  @ResponseBody
  public byte[] test() throws Exception {
 
    File file = new File("E:\\tmp\\1.jpg");
    try(FileInputStream inputStream = new FileInputStream(file)){
     byte[] bytes = new byte[inputStream.available()];
     inputStream.read(bytes, 0, inputStream.available());
     return bytes;
    }
  }
 
}

我们首先在@GetMapping上加入produces告诉Spring,我们要返回的MediaType是一个图片(image/jpeg),然后加上@ResponseBody注解,方法返回byte[],然后将图片读进byte[],不加produces会报错

特别提醒:
必须加produces属性,否则springboot无法自动的选择对应的解析器处理。

标签: Spring Boot Java
地址:https://www.leftso.com/article/820.html

相关阅读

Java编程中Spring Boot整合RabbitMQ实现消息中间件RabbitMQ的使用
Java编程之Spring Boot通过JMSTemplate 整合ActiveMQ
Java编程中spring boot项目如何获取spring容器applicationContext
Spring Boot MQTT协议通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQ...
Java编程之Spring Boot中使用jsp视图模板
Java编程之Spring Boot 使用SLF4J Logging,spring boot,SLF4J
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
spring boot框架中常见注解说明,spring boot,JAVA
学习使用Java配置创建Spring批处理作业(具有多个步骤)。 它使用Spring Boot 2,Spring batch 4和H2数据库来执行批处理作业。
spring boot mybatis 整合使用讲解介绍,spring boot与mybaties的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个...