设计模式之责任链模式实战 本文以电商系统订单金额计算为例,电商订单最终的金额可能是这样的 应支付金额=订单金额-优惠券优惠金额-促销活动优惠金额-会员权益优惠金额 当然也有可能还会增加其他的计算步骤,使用责任链模式来实现订单金额计算,若增加了其他计算步骤,直接将步骤加入到链中即可,而无需改动以前的代码,最大程度减小出错的可能性。责任链分为纯责任链与不纯责任链,在日常开发中,很少有纯的责任链,所谓纯的责任链,就是单个链上处理 2020-03-04 设计模式 结合Spring实践责任链模式
设计模式之门面模式实战 类型:结构型模式 意图:定义一个统一的系统接口,隐藏多个子系统的复杂性。 主要解决:降低访问系统客户端内部子系统的复杂度。 使用场景:解耦合客户端与具体子系统,子系统与客户端无需感知对方,客户端不需要亲自调用子系统的接口,把原本需要与多个子系统的交互全部封装到门面类中,客户端只需要和 Facade 类交互即可。 2020-03-03 设计模式
设计模式之策略模式实战 类型:行为型模式 意图:定义一系列算法,不同算法策略可以相互替换,并且互不影响。 主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。 使用场景:一个系统需要动态地在几种算法中选择一种。 2020-02-19 设计模式
Hibernate Validator 校验最佳实践 几年前刚学习 SpringBoot 的时候,就接触并开始使用 HibernateValidator 校验框架,注解校验结合统一异常处理,对代码的整洁性提高特别有帮助。但是目前发现公司里比较新的项目中对参数进行校验还是使用以前传统的方式,需要逐一对请求对象中的属性使用 if 来判断合法性,当需要校验的属性很多时,一大坨的 if 判断校验代码就不可避免。本文介绍 HibernateValidator 2020-02-04 其他工作技术总结 Hibernate Validator 校验 校验统一异常处理
hexo 自定义文章 url 地址 笔者初次通过 hexo 搭建博客时,对 hexo 不太了解,后来发现中文标题的文章 URL 会转义成http://nullpointer.pw/2018/09/17/%E5%92%8C%E6%88%91%E4%B8%80%E8%B5%B7%E6%89%93%E9%80%A0%E4%B8%AA%E7%AE%80%E5%8D%95%E6%90%9C%E7%B4%A2%E4%B9%8BSpringDat 2020-01-26 其他 hexo-修改永久链接
必知必会之流程图 流程图在各行各业都有所应用,尤其广泛应用与技术设计,产品设计。画好流程图,可以让别人能够很轻松地理解业务,特别是遇到比较复杂的业务时,用言语解释可能需要花费一上午甚至一天,但是用图去表示可能只需要 1 个小时。不多说,直奔主题。 2020-01-22 工具使用 流程图绘制
Java8 时间 API 全集合 前言Java 8 已经面世很长时间,目前连 Java 13、Java 14 都已经出来了,但自己对于 Java8 中的一些 API 用法还不是很熟悉,今年才算全面切换到 Java8。在日常开发过程中,不可避免地会使用到 Java 8 的新时间 API,比如 LocalDateTime、LocalDate 等,放弃使用难用的 Date;但是每次需要进行转换操作时,总是需要重复去 Google 搜索, 2020-01-22 其他工作技术总结 LocalDateTime转时间戳 时间戳转LocalDateTime Date转LocalDateTime LocalDateTime转Date LocalDateTime转LocalDate LocalDate转LocalDateTime LocalDateTime转String String转LocalDateTime Java8获取凌晨时间
mapstruct最佳实践 前言按照日常开发习惯,对于不同领域层使用不同JavaBean对象传输数据,避免相互影响,因此基于数据库实体对象User衍生出比如UserDto、UserVo等对象,于是在不同层之间进行数据传输时,不可避免地需要将这些对象进行互相转换操作。 常见的转换方式有: 调用getter/setter方法进行属性赋值 调用BeanUtil.copyPropertie进行反射属性赋值 第一种方式不必说,属性 2020-01-17 其他工作技术总结 mapstruct自定义类型转换