1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 手放开 李圣杰
  4. 4 迷人的危险3(翻自 dance flow) FAFA
  5. 5 山楂树之恋 程佳佳
  6. 6 summertime cinnamons / evening cinema
  7. 7 不谓侠(Cover 萧忆情Alex) CRITTY
  8. 8 神武醉相思(翻自 优我女团) 双笙
  9. 9 空山新雨后 音阙诗听 / 锦零
  10. 10 Wonderful U (Demo Version) AGA
  11. 11 广寒宫 丸子呦
  12. 12 陪我看日出 回音哥
  13. 13 春夏秋冬的你 王宇良
  14. 14 世界が终わるまでは… WANDS
  15. 15 多想在平庸的生活拥抱你 隔壁老樊
  16. 16 千禧 徐秉龙
  17. 17 我的一个道姑朋友 双笙
  18. 18 大鱼  (Cover 周深) 双笙
  19. 19 霜雪千年(Cover 洛天依 / 乐正绫) 双笙 / 封茗囧菌
  20. 20 云烟成雨(翻自 房东的猫) 周玥
  21. 21 情深深雨濛濛 杨胖雨
  22. 22 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  23. 23 斑马斑马 房东的猫
  24. 24 See You Again Wiz Khalifa / Charlie Puth
  25. 25 Faded Alan Walker / Iselin Solheim
  26. 26 Natural J.Fla
  27. 27 New Soul Vox Angeli
  28. 28 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  29. 29 像鱼 王贰浪
  30. 30 Bye Bye Bye Lovestoned
  31. 31 Blame You 眠 / Lopu$
  32. 32 Believer J.Fla
  33. 33 书信 戴羽彤
  34. 34 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  35. 35 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  36. 36 慢慢喜欢你 LIve版(翻自 莫文蔚) 戴羽彤
  37. 37 病变(翻自 cubi) 戴羽彤
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 绿色 陈雪凝
  40. 40 月牙湾 LIve版(翻自 F.I.R.) 戴羽彤
夜空中最亮的星(翻自 逃跑计划) - 戴羽彤
00:00 / 04:10

夜空中最亮的星 能否听清

那仰望的人 心底的孤独和叹息

夜空中最亮的星 能否记起

那曾与我同行 消失在风里的身影

我祈祷拥有一颗透明的心灵

和会流泪的眼睛

给我再去相信的勇气

越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请指引我靠近你

夜空中最亮的星 是否知道

那曾与我同行的身影 如今在哪里

夜空中最亮的星 是否在意

是等太阳先升起 还是意外先来临

我宁愿所有痛苦都留在心底

也不愿忘记你的眼睛

哦 给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行 哒~

我祈祷拥有一颗透明的心灵

和会流泪的眼睛 哦

给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行

最近在学习的内容

为什么叫这个名字,是因为我还没想好应该叫什么。从春节开始,到疫情原因在家办公,我一直都在试图去多学点东西,多一点提升,但就最近几周的收获而言,我决定一切的提升和进步都应该是目标导向的,而且是要有非常明确的目标,为什么这么说,因为这是我最近几周来的收获和感受。

问题

最近一两周,我一直在做一个新的需求(准确的说是两个,功能类似),基本功能就是后端生成一个pdf报表,然后签章,然后返回预览,并提供打印和下载功能(前期没有考虑预览和打印,第一版发布后客户新提出的)。

我的实际情况是,报表生成,签章都没有什么问题(前期工具类已经写好了,只是简单改造),存在的问题是:

  • 前后端文件传输问题:文件服务器是内网环境,前端页面是外网环境
  • pdf下载、预览(打印)
  • 测试环境不好测试的问题(这个问题不能算问题,但是也是因为这一点,我才有了把整个项目重构的想法)

解决方案

针对以上问题,我的解决方案如下:

  • 第一个问题,文件传输问题,我首先想到的是base64传输。后端生成base64返回给前端,前端通过解码base64生成文件,并下载(没有预览需求的时候就只是这么搞的),为了更友好,更优雅,我中间加了一个文件下载接口,也就是发送文件生成请求返回文件路径,然后在调用下载文件接口的时候在返回文件base64编码
  • 第二个问题,先考虑的是pdfobject.js,但后来发下它不兼容360浏览器(兼容模式),而且必须传文件名(没详细查资料,希望被科普),所以最后放弃了,继而选了psf.js,查了很多资料和博客,最后所有功能都实现了(通过组合模态框和iframe,最后的效果还不错)
  • 第三个问题起始是比较费时间的,也早于前两个问题,因为我对项目的原架构诟病已久,我觉得有点杀鸡用牛刀了。项目之前用的是dubbo+spring+zookeeper,甚至还用到了redis集群,而且还涉及到单点登陆(sso),而且这个项目最开始搭建的时候我也没参与,我写的是后端业务接口,不怎么熟悉,只知道如何打包,如何部署,如何修改,了解一些皮毛,虽然也参照原有消费者,写了一个新的消费者端,但由于单点登陆架构不清楚,我最后自己用shiro自己重写了登陆部分。因为调用的全是别人的接口,虽然本地环境搭建起来了,但是也不好测试,启动这么多东西(单点登陆消费者/提供者、核心接口消费者/提供者、redis集群、zookeeper、后端接口),本地内存也扛不住,最主要启动超级慢,然后我最后痛下决心,决定重构所有服务,采用springboot,简化开发流程,这里面最繁琐、最有挑战的就是单点登陆,也是花费时间最久的,前前后后花了很多时间去琢磨和研究,测试了很多方案,包括shirocas等,最后选了jwt,当然也走了很多弯路,踩了很多坑,还好一切都很顺利,圆满达成目标。

好了问题说完了,第三个问题说的有点多,当然也是收获最多的,下来我要说的是,基于以上问题我的收获和解决方案,由于篇幅问题,这篇文章就不做过的说明,这里预告下关于以上问题,近期会写的一些内容,算是一种梳理、一次总结、一些收获:

  • sso常见解决方案及基本原理
  • jwt基本知识及完整实现示例
  • springboot拦截器、过滤器配置
  • springboot请求参数替换解决方案(比如在请求参数中增加当前用户用户名)
  • springboot小知识拓展
  • 前后端base64pdf文件传输解决方案
  • pdf文件预览实现:base64/文件路径

以上这个内容会在近期不定时发布,是我对自己近期工作和学习的总结,也算是自己的一些记录,如果哪位小伙伴有更好的解决方案和建议,欢迎留言

posted @ 2020-03-31 21:16  云中志  阅读(205)  评论(0编辑  收藏  举报