Springboot制作小网盘系统(小项目)

前言

  • 最近,用Springboot thymleaf ajax实现了一个小型网盘系统,记录其中心得。

项目完成背景

  • 有个堂姐做食品公司采购部门,经常收到客户发来的质检,规格书,厂检等等小文件信息,在邮箱中储存时候自己查看起来比较麻烦,想让我帮她解决优化下,恰好刚刚掌握些写网页小知识就答应了。

项目环境:

  • 前端:html thymleaf(混合) layui jquery
  • 后端:Springboot Mybatis mysql5 (后续要加入安全框架,我自己就简单用session了)

项目步骤:

  1. 分析角色:管理员,客户
  2. 分析操作:上传文件,(花式)查看(下载)文件,(花式)查看用户,操作信息(管理员)。
  3. 建库,写基本增删改查。Junit单元测试方法。
  4. 测试文件上传和下载(最重要的是上传的路径要唯一且能找到),因为文件上传以前写过(博客里javaweb里模板可用),直接移植。
  5. 修改前端,写前端(被坑了挺久)
  6. 渲染数据(也是我很纠结的地方)
  7. 测试,打war包上传测试

这里面有两个比较坑的地方,

  • 一是Springboot上传文件到相对路径的时候因为Springboot是内置tomcat,路径不固定,这点很不友好,而SSM传统项目相对来说webapp路径更好测试一些。还有模板够强大路径没问题。
  • 另一个就是渲染数据了,因为以前写项目都是使用ajax json进行渲染传输,然后发现现在很多模板引擎依然盛行,然后就想着实战下模板引擎。本来想完全采用模板引擎 Model传输数据,后来发现有些场景真的还是用Ajax更好,更方便。

因为自己是初学者,将thmyleaf基础使用和注意点记录下来。

  1. thymleaf文件名为 xxx.html在teamplates文件夹下。要有对应的controller进行渲染Springboot制作小网盘系统(小项目)_第1张图片
  2. 虽然为html后缀,但是有些和html还是不同的,需要加上固定前缀头,并且引入资源要用thymleaf的格式:th:href="@{xx/xx/.css}" th:src的js文件也是如此。
  3. 对应一些属性需要渲染时候,后台还是传统的Springmvc的Model,Modelmap,Modelandview三种map传值,前端thymleaf有自己的写法,比如渲染表单的value时候后端:model.addAttribute("msg","你好");在前端渲染在文本框value里时候:th:value="${msg}",渲染文本的而不是属性时候th:text="${msg}"即可
  4. 对于java的bean对象填入model里面时候Springboot制作小网盘系统(小项目)_第2张图片即可渲染,对于List对象Springboot制作小网盘系统(小项目)_第3张图片即可渲染,对于其他种类渲染可参考其他资料。
  5. 但是,thymleaf并不是适合所有场景,比如 Springboot制作小网盘系统(小项目)_第4张图片对于这种只需要局部刷新,而不需要加载整个页面的,则用ajax最好了。如果每次都用model真的不知道多浪费资源和时间。
  6. 另外一点ajax好的地方就是利于缓存,因为界面总题样式不变,变得是部分数据,那么就可以将html页面缓存,每次打开的时间执行ajax就可以渲染数据,而模板引擎需要查询到后台数据才能加载出来,返回的是整个页面,效率也不如ajax。并且ajax更适合分工合作。而thymleaf更适合个人开发,或者不太熟悉ajax,js语法库的人使用。。
  7. 对于项目打包,建议打成war包,因为项目里有文件夹数据,打成war如果项目更新只改动更新部分而不会丢失数据。
  8. 另外附上一些功能图,管理端,客户端Springboot制作小网盘系统(小项目)_第5张图片Springboot制作小网盘系统(小项目)_第6张图片

至于项目比较烂,就不贴了。因为自己初写,不善于前端,还用的之前的layui模板二次开发。有点小混乱。 ?

  • 如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流:bigsai

你可能感兴趣的:(#,javaWeb,#,Springboot)