入职给的练手项目要求使用spring boot, spring data, elasticsearch,公司里没有做java的人,自己摸爬滚打写出来的东西,写的时候发现好像用到类似东西的例子很少,独乐乐不如众乐乐,分享出来好了,希望能帮助到更多人。
由于个人技术所限,肯定有很多不足,欢迎指出。
项目路径:https://github.com/hallowold/elasticSearchDemo1
使用的技术关键字:
jdk1.8
spring boot 2.0.3
elasticsearch5.6.10
spring data elasticsearch3.0.7
mysql 5.7
swagger2.7.0
spring securit 5.0.6.RELEASE
项目需求:
实现以下需求
1.用户的列表、创建、登录(2个接口),其中列表和创建只有管理员可以操作
2.文章的增、删、改、查、列表(5个接口)
2.1 5个接口要求登录才能调用
2.2 其中删、改两项操作只能由文章作者操作,其他用户无法操作
2.3 其中列表功能要求以点赞数降序排列,并包含点赞用户列表
2.4 实现文章的点赞功能(1个接口)
2.5 仅登录用户可点赞
2.6 一个用户只能对一篇文章点赞一次
大概说一下设计思路
集成spring security托管权限,使用mysql存储相关的信息,
使用elasticsearch5.6.10管理文章数据,
DAO层都使用spring data,
接受数据加一个request层来做一些处理,比如我新增不想接id,直接取时间等这些操作,然后在该层将数据表单封装成实体再交给controller,其实就是表单数据我希望先做一些处理再使用,
返回结果统一使用response(ifSuccess, message, data, code)的形式(security的403实在没搞定,只能近似)
异常统一处理,这样可以将特定的自定义异常作为返回值来处理
部分通用的变量做成静态常量
现在项目是OK的,不过仍然有一些东西没处理好,初始化的data.sql一直没有运行,所以想跑项目的同学请创库跑项目后手动执行一下,然后把ApplicationStartUp.java中注释掉的代码逻辑解开,重新执行即可,以后不用改
项目只有后台,使用swagger接口测试