在最近学习闲暇时刻突然爆发灵感想要自己写一个通用的SpringBoot项目出来,目前使用了到jwt+redis+mybatisPlus嗯差不多这些吧。
整个项目的目录框架
这个结构差不多也是在网上到处缝缝补补(以致于可能是SpringBoot还是SpringCloud都有一点分不清除了),暂时分为了两个模块
1、common模块(放工具类的地方)
当中的具体文件也差不多是大多数SpringBoot或者说SpringCloud可能需要用到的
在config里面配置的是SpringSecurity当中的密码加密的方法(之前想着使用md5但是好像又不是安全那种,刚好之前又学习了SpringSecurity就直接把他自带的拿来用),这个时候如何你只想用SpringSecurity当中的加密,不想用认证授权这些还需要再启动类那儿配置一下,关闭认证。
mp
这个文件夹里面是配置了一些算是实体类通用的字段以及通用使用的方法(因为这个方法也是从其他项目当中看到的时候感觉很好了然后搬过来的!说错了的话,请批评指出!)
这个里面也专门配置了那些创建时间、创建人、更新时间、更新人这些字段,然后这些的话也是可以通过这个配置来自动添加这些字段的内容。
然后如果想要使用这个的话,就需要再对应的实体类上面加上这个注解就可以了(注意加上这个注解之后,再对应的数据表里面也需要加上对应的字段!!!不加的话会报错的)。
返回类Result
暂时也就还有个比较不足的就是,返回类当中的返回码我感觉可能有点不对(状态码对应的意思不对),各位网友如果有什么更好见解希望提出分享一下。
token
在这个里面token我也是想做那种在可以进行token的续签,但是在网上学来学去,看来看去,感觉自己都没有看出个什么名堂,就暂时调了个我自己感觉好实现的来实现(如果有什么不对的,希望各位广大网友批评指出!!)
在用户登录了验证账号密码或者手机号登录成功之后,生成两个token(一个短时间的认证token,一个长时间的刷新token),同时再把这个刷新token放在redis当中,用那个用户自己的id存储起来,一般请求携带认证token就可以了,然后前端那儿看可以弄个定时器还是什么在一定时间后用这个刷新token来请求后端,重新获取到最新的认证token,差不多就是这个思路。
但是在那个里面我自己也感觉到很多的漏洞,就比如我都给前端发两个token了,一个长时间的一个短时间的,那我为什么不直接发一个长时间的token;在请求获取新的认证token的时候,我现在是直接返回一个认证token的,但是这样的话等到刷新token过期的时候还是要让用户重新登录,那不如弄个长的token(在想是不是要换成在每次刷新认证token的时候也要把刷新token重新返回给前端);在前端做的定时器好像也是不大准确的(好像说是在缩小网页就是点“—”号隐藏了,那个定时器好像就直接不动了)。
如果各位网友有更好的意见,感谢每一位愿意分享意见的网友,你们的贡献对我至关重要。
2、system(暂时是这个名字)
这个里面就和一个普通的SpringBoot项目差不多一样了
config里面就是正常的一些配置类拦截器、mybatisPlus配置、redis配置、Long和时间的序列化配置、异步配置
暂时写了就是User里面的一些注册、登录等基本接口
在这儿就有一个非常大的疑惑,就是想config里面的杂七杂八的配置文件,能不能单独弄在一个模块里面,或者说用什么方法可以减少写这个的次数,如果后面有多个模块的话,就比如mybatisPlus配置文件,需要在每个模块当中进行编写,有没有可以把这个进行集中起来了的,如果是在SpringCloud当中使用的也可以。
如果各位网友有更好的意见,感谢每一位愿意分享意见的网友!!!