摘要: 用户只有激活成功才可以发送文章 删除文章等操作 业务逻辑: 从header中取出id 根据id从redis取出用户信息缓存信息 判断是否能从redis中取出用户缓存若未能取出直接拦截 判断用户状态码是否已激活 若未激活 直接拦截 public class UserActiveInterceptor 阅读全文
posted @ 2021-07-26 10:50 RainbowMagic 阅读(50) 评论(0) 推荐(0)
摘要: 若用户未登录 不能进行某些操作 如修改用户信息等 业务思路: 从header中取出userId 和 token 判断token是可以取出userid和token 若未取出则表示未登录 抛出异常并返回 从redis中取出token信息 若未取出表示未登录 判断token是前端传入的token是否和re 阅读全文
posted @ 2021-07-26 10:43 RainbowMagic 阅读(88) 评论(0) 推荐(0)
摘要: 因为用户信息不是经常需要修改的 可以将用户信息存储至Redis中 不但可以减轻数据库的压力 而且可以更快的将用户的数据查询出来 在BaseController中顶一个redis字段用于标识用户信息 protected static final String REDIS_USER_CACHE = "r 阅读全文
posted @ 2021-07-24 16:35 RainbowMagic 阅读(392) 评论(0) 推荐(0)
摘要: 有一些信息在各个页面都会用到 需要封装个VO类 public class AccountBasicInfoVO { private String id; private String nickname; private String face; private Integer activeStatu 阅读全文
posted @ 2021-07-23 17:15 RainbowMagic 阅读(65) 评论(0) 推荐(0)
摘要: 需要用到vo类 业务思路: 判断有无字段空或不合法 执行更新操作 之前在doLogin也使用过判断并显示错误信息 public GraceJSONResult updateUserInfo(UpdateUserBO updateUserBO, BindingResult bindingResult) 阅读全文
posted @ 2021-07-23 16:46 RainbowMagic 阅读(138) 评论(0) 推荐(0)
摘要: VO (Value Object) 主要对应界面显示的数据对象。对于一个WEB页面,用一个VO对象对应整个界面的值。 简而言之 vo用于想前端展示数据 因为不是所以字段都需要被查出来的 createdTime 和 updateTime 就不需要查询出来 这时候就需要vo了 public class 阅读全文
posted @ 2021-07-23 16:25 RainbowMagic 阅读(822) 评论(0) 推荐(0)
摘要: 在分布式中 多个服务一般分别部署在不同的服务器中 不同的服务器因为作用域不同无法共享session 为了解决这一问题 可以自己生成一个token 访问服务时 判断token是否合法 如果合法则放行 只有token是无法识别用户的 所以还得保存一个UserId 在本项目中似乎未验证token 只要不为 阅读全文
posted @ 2021-07-22 15:02 RainbowMagic 阅读(156) 评论(0) 推荐(0)
摘要: Bo(business object) 封装业务对象的属性 只包含业务对象的属性; 只包含业务方法; 两者都包含。 service层和web层进行数据交换用BO 从业务模型角度看,见UML元件领域模型中的领域对象。 通过调用DAO方法,结合PO,VO进行业务操作。把业务逻辑封装为一个对象。这个对象可 阅读全文
posted @ 2021-07-20 23:27 RainbowMagic 阅读(556) 评论(0) 推荐(0)
摘要: 如果直接使用new Execption的方抛出异常 代码中将会出现大量的try catch语句 而直接使用new runTimeExecption的方式无法返回值 使用自定义异常和Spring统一处理异常可以解决这两个问题 定义一个类用于抛出自定义异常 当有需要抛出异常的地方的时候 直接调用这个方法 阅读全文
posted @ 2021-07-20 22:49 RainbowMagic 阅读(178) 评论(0) 推荐(0)
摘要: 所谓限制短信发送频率 大体思路是 判断之前发送短信存储的ip在redis是否存在 若存在则拦截 实现 HandlerInterceptor 类 类中有三个方法分别是 afterCompletion: controller执行之后 渲染视图之后 postHandle: controller 执行之后 阅读全文
posted @ 2021-07-18 22:38 RainbowMagic 阅读(370) 评论(0) 推荐(0)