steam想申明库存量,不晓得在哪里去增设,那个出口处是稍稍有点儿深,由此可见毕竟也很单纯,一起来看一看什么样操作方式。操作方式方式01登入steam后,点选街道社区旁的对个人......
2024-02-05 559
Spring boot是一个非常简洁的应用运行时框架,既可以发布web服务也可以发布Restful服务,在这里根据之前的Spring MVC和Spring boot开发经验,继续提供一个使用spring boot发布一个上传文件列表查看的服务。
1)常规RESTful Web Service
2) Hypermedia-Driven RESTful Web Service
1使用Spring和JQuery实现视频文件的上传和播放
2Spring MVC/Spring Boot实现图片文件上传和显示
在《使用Spring和JQuery实现视频文件的上传和播放》案例中项目的基础上增加一个Restful服务的Controller:FileServerRestController.java
package image;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;
import image.storage.StorageService;
/**
* 文件上传服务控制器
* @author Fantasy
*
*/
@RestController
public class FileServerRestController {
private final StorageService storageService;
@Autowired
public FileServerRestController(StorageService storageService) {
this.storageService = storageService;
}
@RequestMapping("fileList")
public ListString> getFileList(String fileName) {
ListString> rst = storageService.loadAll().map(
path -> MvcUriComponentsBuilder.fromMethodName(FileUploadController.class,
"serveFile", path.getFileName().toString()).build().toString())
.collect(Collectors.toList());
return rst;
}
}
重点说明一下控制器的实现原理
1)控制器需要使用@RestController注解, 不要使用@Controller
2) Restful的访问URL地址为 /fileList ,返回值为字符串的List对象
@RequestMapping("fileList")
public ListString> getFileList(String fileName) {
ListString> rst = storageService.loadAll().map(
path -> MvcUriComponentsBuilder.fromMethodName(FileUploadController.class,
"serveFile", path.getFileName().toString()).build().toString())
.collect(Collectors.toList());
return rst;
}
进行测试Restful服务前,需要使用之前的 《Spring MVC/Spring Boot实现图片文件上传和显示》案例经验,进行文件的上传操作
1)运行Application.java启动Spring boot容器框架
2)在浏览器中输入URL地址:http://localhost:8080/upload 进行图片文件的上传操作
3)连续上传3张照片
使用步骤2)创建的Restful服务获取步骤3上传的文件列表,进行Restful服务消费
1)在浏览器URL地址栏中输入restful的地址:http://localhost:8080/fileList
可以看到页面的返回结果
["http://localhost:8080/files/60M58PIC5gC_1024.jpg","http://localhost:8080/files/u=1952160410,566496358&fm=27&gp=0.jpg","http://localhost:8080/files/u=3104684101,3964017121&fm=27&gp=0.jpg"]
使用Spring boot实现超媒体数据结构的RESTful Web Service:
在FileServerRestController控制器中增加一下方法:
/**
* 实现Hypermedia-Driven RESTful Web Service
* @param fileName
* @return
*/
@RequestMapping("fileListByHateoas")
public HttpEntityFileInfo> getFileListHateoas(String fileName) {
ListString> rst = storageService.loadAll().map(
path -> MvcUriComponentsBuilder.fromMethodName(FileUploadController.class,
"serveFile", path.getFileName().toString()).build().toString())
.collect(Collectors.toList());
FileInfo fileInfo = new FileInfo(rst.toString());
fileInfo.add(ControllerLinkBuilder.linkTo(ControllerLinkBuilder.methodOn(FileServerRestController.class).getFileListHateoas(fileName)).withSelfRel());
return new ResponseEntityFileInfo>(fileInfo,HttpStatus.OK);
}
使用Spring boot实现超媒体数据结构的RESTful Web Service:
同时需要在maven工程中增加spring-boot-starter-hateoas和json-path包依赖
dependency>
groupId>org.springframework.boot/groupId>
artifactId>spring-boot-starter-hateoas/artifactId>
/dependency>
dependency>
groupId>com.jayway.jsonpath/groupId>
artifactId>json-path/artifactId>
/dependency>
使用Spring boot实现超媒体数据结构的RESTful Web Service:测试
在浏览器中输入:http://localhost:8080/fileListByHateoas
可以看到页面的输出结果:
{"content":"[http://localhost:8080/files/60M58PIC5gC_1024.jpg, http://localhost:8080/files/m1.jpg, http://localhost:8080/files/u=1952160410,566496358&fm=27&gp=0.jpg]",
"_links":{
"self":{
"href":"http://localhost:8080/fileListByHateoas"
}
}
}
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
steam想申明库存量,不晓得在哪里去增设,那个出口处是稍稍有点儿深,由此可见毕竟也很单纯,一起来看一看什么样操作方式。操作方式方式01登入steam后,点选街道社区旁的对个人......
2024-02-05 559
操作方式方法01【辅助widget】多种辅助工具相连接两个功能键的可同时按【Shift】加此功能键挑选出1、正方形、圆锥选框辅助工具 【M】 2、终端辅助工具 【V】 3、截叶......
2024-02-05 501
操作方式01文档格式难题qq肖像最合适用jpeg文档格式的相片,若是相片有透明化地下通道,能选用png文档格式上载。 02大小不一难题若是相片极重也可能将引致上载失利,检......
2024-02-05 421