一切福田,不離方寸,從心而覓,感無不通。

Netty实战:Netty如何实现文件的上传和下载?

一、Netty应用场景

讲了一些Netty的组件,来聊一聊大家最关心的事情吧,他能够做什么?毕竟,我们学习就是拿来用的嘛。我可以简单的概括一下,凡是牵扯到网络相关的,都可以使用Neety去实现!

构建高性能、低时延的各种 Java 中间件,例如 MQ、分布式服务框架、ESB 消息总线等,Netty 主要作为基础通信框架提供高性能、低时延的通信服务;

公有或者私有协议栈的基础通信框架,例如可以基于 Netty 构建异步、高性能的 WebSocket 协议栈;

各领域应用,例如大数据、游戏等,Netty 作为高性能的通信框架用于内部各模块的数据分发、传输和汇总等,实现模块之间高性能通信。

二、Netty实现文件的上传和下载

1、MultipartRequest


 

定义了一个http封装的对象。保存对应的传参数。

2、FileServer


 

使用netty实现服文件服务器端。

3、Pipeline


 

编写职责链,请求会从入栈以次从上到下经过编解码,请求和秉承HTTPObject,最后执行业务类FileServerHandle。

4、FileServerHandle


 

业务执行类,实现了文件上传和下载的接口。当请求为downFile则下载文件,请求为upLoadFile则为上传文件

三、程序演示

1、下载演示

启动服务器端

浏览器执行下载文件,正确的下载到文件test.txt

2、上传演示

使用apipost或者postman执行文件上传操作

文件上传成功并成功读取文件内容

本文主要演示了如何不使用spring或者tomcat当做服务器,使用netty实现自己的文件上传和下载服务。并根据请求来实现对应的api接口操作。当然,如果想使用netty像spring那样简单并规范化的封装自己的api,那么就要靠自己去封装实现了。有兴趣的朋友可以自己尝试下

作者:Dark_King_
原文链接:blog.csdn.net/b37968539

from:https://zhuanlan.zhihu.com/p/152071762