springboot单例模式注入对象_全栈之路-杂篇-探究SpringBoot多例模式注入的方案

毫无疑问的,springboot托管的实体类默认是以单例模式的形式进行实例化的,但是在某些场景下,我们需要的不是单例模式的实体类,这个时候我们该如何去实现springboot托管的实体类进行多例模式的创建呢?

一、单例模式存在的问题

1、业务场景介绍

就是我们为什么会有改变springboot默认单例模式的这种创建bean的形式?这个业务场景是这样的,我们在做优惠券的校验的时候,我们自己封装了一个优惠券的校验类,这样的话,我们就可以很方便的进行统一的优惠券的校验了,在做优惠券的校验的时候,我们会有一个打折的情况,这里会出现一个四舍五入的问题,就会导致数据并不是原来的数据,会有一个偏差,我们到底是采用什么模式进行小数的取舍,这里是值得探讨的,但是我们这里的处理方式是将折扣价的计算封装成了一个接口,这样我们写了几个实现类,有四舍五入的方式,有直接舍去的方式,有银行家算法的方式,我们在使用的时候直接使用实现类来计算就好,在代码中我们是这样实现的:

接口类:

1 //接口类

2 public interfaceIMoneyDiscount {3 BigDecimal discount(BigDecimal original, BigDecimal discount);4 }

第一个实现类(四舍五入):

1 public class HalfUpRound implementsIMoneyDiscount{2

3 @Override4 publicBigDecimal discount(BigDecimal original, BigDecimal discount)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值