Spring 优雅使用多例模式
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 优雅使用多例模式相关推荐
- Spring——单例模式和多例模式
singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例. prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new. ...
- java spring 实现策略,Spring 环境下实现策略模式的示例
背景 最近在忙一个需求,大致就是给满足特定条件的用户发营销邮件,但是用户的来源有很多方式:从 ES 查询的.从 csv 导入的.从 MongoDB 查询-.. 需求很简单,但是怎么写的优雅,方便后续扩 ...
- rethat安装MySQL多例_Spring框架-Bean作用域中单例模式和多例模式的区别
Spring框架-Bean作用域中单例模式和多例模式的区别 一.单例模式的特点(当没有指定是单例模式还是多例模式的时候,默认是单例模式): 1.Spring容器创建的时候,对应的类的实例化对象一起被创 ...
- SpringIOC的创建对象的单例多例模式和自动注入
[1] SpringIOC创建对象的单例和多例模式 问题: Spring容器对象根据配置文件创建对象的时机默认发生在Spring容器对象在被创建的时候,也就是说,我们一旦获取到Spring容器对象,意 ...
- spring中的单例和多例
直接上配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/ ...
- 单例模式和多例模式详解
单例模式的关键有两点: 1.构造方法为私有,这样外界就不能随意调用. 2.get的方法为静态,由类直接调用 多例模式(Multiton) 1 .多例类可以有多个实例 2 .多例类必须能够自我创建并管 ...
- 巧用 Spring 自动注入实现策略模式升级版
一.前言 1.1 背景 在工作过程中,有时候需要根据不同的枚举(常量)执行不同的逻辑. 比如不同的用户类型,使用不同的优惠政策:不同的配置变化,走不同的处理逻辑等. 下面模拟一个根据不同用户类型,走不 ...
- Spring Security OAuth2 授权码模式 (Authorization Code)
前言 Spring Security OAuth2 授权码模式 (Authorization Code) 应该是授权登录的一个行业标准 整体流程 首先在平台注册获取CLIENT_ID和CLIENT_S ...
- 什么是单例模式和多例模式
单例模式的关键有两点: 1.构造方法为私有,这样外界就不能随意调用. 2.get的方法为静态,由类直接调用 多例模式(Multiton) 1 .多例类可以有多个实例 2 .多例类必须能够自我创建并管理 ...
最新文章
- 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 4.)(python/c/c++版)(笔记)
- python turtle 怎么设计背景颜色_Python, turtle海龟作图,如何添加背景图片?
- python之路_自定义属性、json及其他js补充
- jQuery进行DOM操作记录
- 传输层端口号的范围是多少?被分为哪两部分_6.传输层协议
- Densenet论文解读 深度学习领域论文分析博主
- win10系统中如何把自带的IE11降级回IE8?
- Windows7自带截图工具无法保存图片的修复办法
- pyqt5报错——ERROR: pip‘s dependency resolver does not currently take into account all the packages that
- 阿里云PK腾讯云:两大SaaS加速器生死对决
- 【Note】微信小程序js使用农历(一行代码)
- linux系统安装telnet服务
- 工厂闸机人脸识别系统
- android 壁纸服务,Android-Service实现手机壁纸自动更换
- 医用纤维和树脂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 基于阿里云物联网的体重秤
- oracle ogg启动不了,OGG启动REPLICAT进程遇到OGG-00212错误 | 信春哥,系统稳,闭眼上线不回滚!...
- autojs之停止脚本的6种方法
- Python 实验报告,实现停车场收费管理系统
- 视频智能合并去除原声,添加新音频及文案导出保存