暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Spring Cloud实战案例 │ 基于Ribbon实现文件上传(附限免视频)

333

本案例介绍基于Ribbon实现文件上传。整个应用分为3个微服务项目,分别是Eureka服务器项目mweathereurekaserver、文件上传服务提供者项目uploadfile、文件上传服务消费者项目fileuser。

本案例中Eureka服务器项目mweathereurekaserver的实现方法和 上一篇 中的实现方法相同,请参考 上一篇 第一节说明和参考书附带的源代码。


1

实现文件上传服务提供者项目uploadfile


1

新建项目并添加依赖

新建项目uploadfile,确保在文件pom.xml的<dependencies></dependencies>之间添加了Eureka Client、Thymeleaf、Lombok、Web依赖。


2

创建类

依次在包com.bookcode下创建exception、service、controller等子包。并在包com.bookcode.exception中创建类StorageException、StorageFileNotFoundException,在包com.bookcode.service中创建类StorageService,在包com.bookcode.controller中创建类FileUploadController、UploadPictureController,并修改这些类的代码。


3

新建文件和修改配置文件

在目录src/main/resources/templates下创建文件index.html、welcome.html、uploadForm.html,并修改这些文件的代码。

修改在目录src/main/resources下的配置文件application.properties。

上述文件的具体代码请参考本书附带的源代码。


2

实现文件上传服务消费者项目fileuser


1

新建项目并添加依赖

新建项目fileuser,确保在文件pom.xml的<dependencies></dependencies>之间添加了Eureka Client、Web依赖。


2

创建类、修改配置文件和配置文件

在包com.bookcode中创建类CallFileUpload、FileUploadController,并修改这些类的代码。

修改入口类,增加实现负载均衡的代码。

修改在目录src/main/resources下的配置文件application.properties。

上述文件的具体代码请参考本书附带的源代码。


3

程序运行结果

在D盘创建一个文件夹upload-dir。

依次运行项目mweathereurekaserver(端口为8761)、uploadfile(服务名称为file-upload,端口为8093)、fileuser(端口为8099)。

在浏览器中输入localhost:8093,结果如图C-1所示。

■ 图C-1在浏览器中输入localhost:8093的结果

单击“选择文件”按钮,如图C-1所示,选择要上传的文件,再单击Upload按钮,结果如图C-2所示。

■ 图C-2正确上传文件后的结果

在浏览器中输入localhost:8093/upload,结果如图C-3所示。


■ 图C-3在浏览器中输入localhost:8093/upload的结果

单击图C-3中“选择文件”按钮,选择要上传的文件,再单击图C-3中“上传”按钮,结果如图C-2所示。

在浏览器中输入localhost:8099/uponefile,结果如图C-4所示。


■ 图C-4在浏览器中输入localhost:8099/uponefile的结果

单击图C-4中“选择文件”按钮,选择要上传的文件,再单击Upload按钮,结果如图C-5所示。


■ 图C-5在图C-4或C-6的基础上正确上传文件后的结果

在浏览器中输入localhost:8099/upfiles,结果如图C-6所示。单击图C-6中“选择文件”按钮,选择要上传的文件,再单击“上传”按钮,结果如图C-5所示。


■ 图C-6在浏览器中输入localhost:8099/upfiles的结果

保持原有项目uploadfile(端口为8093)中其他所有文件不变,只修改配置文件application.properties中设置端口的代码,再启动两个与项目uploadfile微服务内容相同的新服务器(端口分别为8095、8096)。在浏览器中输入localhost:8099/greet,并不断进行刷新页面操作,会依次循环显示如图C-7(对应的服务器端口为8093)、图C-8(对应的服务器端口为8095)、图C-9(对应的服务器端口为8096)所示的结果。


■ 图C-7由端口为8093的服务器提供服务的结果

■ 图C-8由端口为8095的服务器提供服务的结果

■ 图C-9由端口为8096的服务器提供服务的结果

与本案例类似的代码可以参考网址https://github.com/JavaCodeMood/spring-cloud-demo/tree/master/file-upload,读者可以对比此网址的代码和本书附带的源代码,加深对Ribbon应用开发的认识。


扫码观看视频讲解 限免3天


4

参考书籍

《Spring Cloud 微服务开发实战-微课视频版》

ISBN:9787302542346

作者:吴胜

定价:49.9元





文章转载自清华计算机学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论