首页 > 其他分享 >Spring中用到的一些设计模式

Spring中用到的一些设计模式

时间:2024-03-26 14:46:58浏览次数:23  
标签:Spring 用到 代理 模式 算法 实例 设计模式 装饰 模板

单例模式:bean默认就是单例

原型模式:指定作用域为prototype

工厂模式:BeanFactory

模板方法:postProcessBeanFactory, onRefresh, initPropertyValue

策略模式: xmlBeanDefinitionReader,PropertiesBeanDefinitionReader

观察者模式: listener, event, multicast

适配器模式: Adapter

装饰器模式: BeanWraper,主要作用是完成bean的属性填充

责任链模式: 使用AOP的时候会先生成一个拦截器链

代理模式:动态代理

委托者模式:delegate

 

 

其中,

模板方法策略模式在表现上比较类似,都是相互之间可以替换

模板方法:在父类中已经定义好了一个算法的框架,允许子类来实现一系列步骤中的特定的一些步骤

策略模式:定义了一组算法,每个算法都被封装,这些算法相互之间可以替换

 

装饰器模式代理模式在表现上也有一些类似,都是在一个类实例中持有另一个类实例,两个类具有相同的接口,方法内部会进行调用持有实例的方法

装饰器模式:强调对自身业务功能的扩展和增强,装饰器类和原类是可以相互替换的

代理模式:强调对非业务功能的扩展和增强,强调隐藏原实现,强调的是一个功能的调用,通过代理类来间接调用

标签:Spring,用到,代理,模式,算法,实例,设计模式,装饰,模板
From: https://www.cnblogs.com/huainanyin/p/18096624

相关文章

  • SpringBoot基础24_SpringBoot简介1
    一、原有Spring优缺点分析1、Spring的优点分析Spring是Java企业版(JavaEnterpriseEdition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的EnterpriseJavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(PlainOldJava......
  • Spring AOP实现过程
    @Aspect驱动定义一个切面类Aspect即在声明的类,增加@Component@Aspect两个注解,SpringBoot中要引入spring-boot-starter-aop依赖包定义切点定义切点,并定义切点在哪些地方执行,采用PointCut注解完成,如@Pointcut(public*com.xxx.xxx..(..))规则:修饰符(可以不写,但不能......
  • Spring bean创建过程中的几个factory
    在SpringBoot启动过程中会去创建很多bean,然后交给IoC容器,创建的过程中涉及到几个比较容易混淆的factory如下BeanFactory,FactoryBean,ObjectFactory BeanFactory是一个接口,是一个bean的工厂,能够创建bean(按照bean的生命周期来创建Spring中大部分的bean实例),并提供了获取bean实例......
  • springboot学习
    SpringBoot1SpringBoot2SpringBoot3SpringBoot4SpringBoot5SpringBoot6SpringBoot7shiro简介:入门:整合shiro导包写Controller报错点击查看代码org.thymeleaf.exceptions.TemplateInputException:Errorresolvingtemplate[index],templatemightnotexistor......
  • 线上gc问题-SpringActuator的坑
    整体复盘:一个不算普通的周五中午,同事收到了大量了cpu异常的报警。根据报警表现和通过arthas查看,很明显的问题就是内存不足,疯狂无效gc。而且结合arthas和gc日志查看,老年代打满了,gc不了一点。既然问题是内存问题,那么老样子,通过jmap和heapdump文件分析。不感兴趣的可以直接看结论......
  • 【常见错误】org.springframework.web.multipart.MultipartException request is not
    检查请求类型和内容类型MultipartException 错误通常发生在请求类型不是 multipart/form-data 或者内容类型不是预期的类型时。因此,要解决这个错误,需要确保请求的类型和内容类型正确。以下是一些检查步骤:检查请求类型确保发送到服务器的请求的HTTP方法为 POST,并且Cont......
  • Springboot项目的main函数入口,如何像jar包一样接受参数
    一般来说,springboot项目是提供服务的,但是也可以用到导出jar来启动,那么如何介绍参数呢:packagecom.example.TestDemo;importcom.example.jmeter.bean.TestCaseResult;importcom.example.jmeter.controller.JmeterController;importlombok.extern.slf4j.Slf4j;importorg.......
  • Springboot3基于SpringDoc实现接口分组功能
    问题最近在接触SpringBoot3,整合Swagger文档组件的过程中发现一个问题,通过springdoc.group-configs[0].display-name=示例接口配置分组名称在界面上面还是显示OpenAPIdefinition,如下图所示:查询了下官方文档,可以通过注入GroupedOpenApi对象实现接口分组描述信息展示,同时找到了一......
  • 06bg9springboot学生信息管理系统
    ......
  • 172基于springboot的二手车交易系统的设计与实现
    ......