1.多例模式使用场景?

比如对sku(对象的字段偏多)的字段进行操作,在上下文引用过程中需要频繁使用sku的较多字段,使用多例模式会使代码更加优雅和扩展性更高

2.LookupContext 生产多例对象的类

@Component
public abstract class LookupContext {@Lookup("skuContext")public abstract SkuContext skuContext();
}

3.SkuContext sku的上下文引用

@Slf4j
@Component
@Scope(SCOPE_PROTOTYPE)
public class SkuContext {// sku的属性组listList<Material> materialGroups;@Overridepublic void wrapProcess(Sku sku) {this.materialGroups=sku.getMaterialGroups();log.info("属性:{}",materialGroups);}
}

4.SkuService sku的执行类

@Slf4j
public class SkuService {@Autowiredprivate LookupContext lookupContext;void wrapProcess(Sku sku) {// 包装流程lookupContext.skuContext().wrapProcess(sku);}}

5.总结

如果后续需要对sku做个性化差异,继承SkuContext的类实现差异化,然后将多例注入到LookupContext中就行了。

QQ交流群: 132312549

Spring 优雅使用多例模式相关推荐

  1. Spring——单例模式和多例模式

    singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例. prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new. ...

  2. java spring 实现策略,Spring 环境下实现策略模式的示例

    背景 最近在忙一个需求,大致就是给满足特定条件的用户发营销邮件,但是用户的来源有很多方式:从 ES 查询的.从 csv 导入的.从 MongoDB 查询-.. 需求很简单,但是怎么写的优雅,方便后续扩 ...

  3. rethat安装MySQL多例_Spring框架-Bean作用域中单例模式和多例模式的区别

    Spring框架-Bean作用域中单例模式和多例模式的区别 一.单例模式的特点(当没有指定是单例模式还是多例模式的时候,默认是单例模式): 1.Spring容器创建的时候,对应的类的实例化对象一起被创 ...

  4. SpringIOC的创建对象的单例多例模式和自动注入

    [1] SpringIOC创建对象的单例和多例模式 问题: Spring容器对象根据配置文件创建对象的时机默认发生在Spring容器对象在被创建的时候,也就是说,我们一旦获取到Spring容器对象,意 ...

  5. spring中的单例和多例

    直接上配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/ ...

  6. 单例模式和多例模式详解

    单例模式的关键有两点: 1.构造方法为私有,这样外界就不能随意调用. 2.get的方法为静态,由类直接调用 多例模式(Multiton) 1 .多例类可以有多个实例  2 .多例类必须能够自我创建并管 ...

  7. 巧用 Spring 自动注入实现策略模式升级版

    一.前言 1.1 背景 在工作过程中,有时候需要根据不同的枚举(常量)执行不同的逻辑. 比如不同的用户类型,使用不同的优惠政策:不同的配置变化,走不同的处理逻辑等. 下面模拟一个根据不同用户类型,走不 ...

  8. Spring Security OAuth2 授权码模式 (Authorization Code)

    前言 Spring Security OAuth2 授权码模式 (Authorization Code) 应该是授权登录的一个行业标准 整体流程 首先在平台注册获取CLIENT_ID和CLIENT_S ...

  9. 什么是单例模式和多例模式

    单例模式的关键有两点: 1.构造方法为私有,这样外界就不能随意调用. 2.get的方法为静态,由类直接调用 多例模式(Multiton) 1 .多例类可以有多个实例 2 .多例类必须能够自我创建并管理 ...

最新文章

  1. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 4.)(python/c/c++版)(笔记)
  2. python turtle 怎么设计背景颜色_Python, turtle海龟作图,如何添加背景图片?
  3. python之路_自定义属性、json及其他js补充
  4. jQuery进行DOM操作记录
  5. 传输层端口号的范围是多少?被分为哪两部分_6.传输层协议
  6. Densenet论文解读 深度学习领域论文分析博主
  7. win10系统中如何把自带的IE11降级回IE8?
  8. Windows7自带截图工具无法保存图片的修复办法
  9. pyqt5报错——ERROR: pip‘s dependency resolver does not currently take into account all the packages that
  10. 阿里云PK腾讯云:两大SaaS加速器生死对决
  11. 【Note】微信小程序js使用农历(一行代码)
  12. linux系统安装telnet服务
  13. 工厂闸机人脸识别系统
  14. android 壁纸服务,Android-Service实现手机壁纸自动更换
  15. 医用纤维和树脂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. 基于阿里云物联网的体重秤
  17. oracle ogg启动不了,OGG启动REPLICAT进程遇到OGG-00212错误 | 信春哥,系统稳,闭眼上线不回滚!...
  18. autojs之停止脚本的6种方法
  19. Python 实验报告,实现停车场收费管理系统
  20. 视频智能合并去除原声,添加新音频及文案导出保存

热门文章

  1. windows 10下 itunes 备份默认存储路径问题
  2. 与恼人的验证码说拜拜,Google用一次点击区分人与机器
  3. vxworks固件分析
  4. Tomcat的context path
  5. 制作启动U盘加载阵列卡驱动
  6. 组织知识管理与个人知识管理
  7. 菜鸟程序员成长记Java系列(二)
  8. 基于多智能体深度强化学习的空地协同通信系统轨迹设计与访问控制
  9. 乘风破浪的不止姐姐,还有我们的测试工程师!
  10. 【MySQL】win10下MySQL的安装与后事(纯文字版)