首页 > 编程语言 >细品spring设计,可扩展性编程Aware接口,Adapter类

细品spring设计,可扩展性编程Aware接口,Adapter类

时间:2024-03-12 19:31:47浏览次数:19  
标签:可扩展性 spring Adapter 接口 Aware 实现 Bean Spring

Spring中的扩展点介绍

Aware接口

在Spring中,Aware接口是一组特定的接口,用于向Bean提供特定的资源或信息。通过实现Aware接口,Bean可以感知到容器的特定状态或资源。

常见的Aware接口包括:

  • BeanNameAware:获取当前Bean在容器中的名字。
  • ApplicationContextAware:获取当前Bean所在的ApplicationContext。
  • EnvironmentAware:获取当前应用的环境信息。
  • ResourceLoaderAware:获取资源加载器,用于加载外部资源。

通过实现这些Aware接口,Bean可以在初始化时获取到相应的资源或信息,从而实现更灵活的逻辑处理。

Adapter类

在Spring中,Adapter类是一种设计模式,用于将一个类的接口转换成另一个类的接口,以满足客户端的需求。

Spring中的Adapter类通常用于适配不同的接口,使得不同的组件能够协同工作。这样可以降低组件之间的耦合度,提高系统的灵活性和可扩展性。

常见的Adapter类包括:

  • BeanPostProcessor:用于在Bean初始化前后进行一些处理。
  • BeanFactoryPostProcessor:用于在BeanFactory标准初始化之后进行一些处理。
  • InitializingBean:用于在Bean属性设置完成后进行一些初始化操作。
  • DisposableBean:用于在Bean销毁前进行一些清理操作。

通过实现这些Adapter类,可以在Bean的生命周期中插入自定义的逻辑处理,从而实现对Bean的更细粒度的控制。

反思

从Spring中的Aware接口和Adapter类的设计中,我们可以学到以下几点:

  1. 面向接口编程:Aware接口和Adapter类都是基于接口设计的。通过定义接口,可以实现组件之间的解耦,提高代码的灵活性和可维护性。

  2. 扩展性:Aware接口和Adapter类提供了一种扩展机制,允许用户根据自己的需求实现特定的接口或类来获取更多的资源或控制Bean的生命周期。这种设计使得Spring框架更容易扩展和定制。

  3. 解耦合:Aware接口和Adapter类的设计可以降低组件之间的耦合度。通过接口的定义和实现,不同的组件可以更容易地协同工作,而不需要直接依赖于具体的实现类。

  4. 灵活性:Aware接口和Adapter类提供了灵活的扩展点,使得用户可以根据自己的需求定制Bean的行为。通过实现这些接口或类,可以在Bean的生命周期中插入自定义的逻辑处理,从而实现更加灵活和定制化的功能。

总的来说,从Spring中的Aware接口和Adapter类的设计中,我们可以学到设计模式的灵活运用、面向接口编程的思想以及解耦合的重要性。这些设计思想和实践对于构建可扩展、灵活和易维护的应用程序至关重要。

标签:可扩展性,spring,Adapter,接口,Aware,实现,Bean,Spring
From: https://blog.csdn.net/weixin_44808225/article/details/136660737

相关文章

  • SpringBoot(容器功能)
    文章目录1.@Configuration添加/注入bean1.注入bean1.编写一个JavaBean,Monster.java2.创建一个config文件夹(名字任意),用于存放配置Bean的类(相当于配置文件)3.BeanConfig.java4.测试使用MainApp.java2.结果展示2.细节说明1.@Configuration的proxyBeanMethods属性2.可以有......
  • 【Springboot】--如何将springboot+vue项目部署到云服务器?
    目录一、准备工作1、购买云服务器2、获取面板地址二、jdk和数据库1、安装环境 2、配置jdk环境变量3、java版本的问题4、添加数据库三、前端部署 1、vue2、创建站点​编辑四、后端部署1、application.yml2、idea打包3、运行jar包4、开放端口五、可能遇到的......
  • 你好Spring6 第0天
    传送门前言记得自己是先进的公司实习才学的Spring,那时候甚至还是个JDK7的SSM框架,真快,现在都是JDK17+Spring6时代了(Spring6发布于2022年底)选B站大学的视频来学习吧学习方向为Spring->SpringMVC->SpringBoot->Spring其他组件Spring尚硅谷Spring零基础入门到进阶,一套搞定spr......
  • Spring的核心思想之一IOC:仿Spring自定义一个实现IOC的容器
    IoCInversionofControl(控制反转/反转控制),是⼀个技术思想而不是⼀个技术实现。它描述的是Java开发领域对象的创建,管理的问题——传统开发⽅式:⽐如类A依赖于类B,往往会在类A中new⼀个B的对象,而在IoC思想下开发⽅式:使用者不⽤⾃⼰去new对象了,由IoC容器(Spring框架或其他)帮......
  • springboot-02理解 自动配置原理
    在进行springboot的多环境配置:可以选择激活那一共配置文件在properties下使用spring.profiles.active=.dev.test等在yaml下可以使用-------来进行分割环境配置测试环境server:port:8082spring:Profiles:dev/test;active:只需通过选择不同调用的环境参数进行声明即可......
  • 深入探索Spring注入:解锁@Autowired与构造器注入的秘密
    好久没有写JAVA了今天突然看到Sonarlint的提示  什么??竟然不推荐这样写?难道我一直写的都是错的??所以我深入了解了一下为什么要我改成构造函数注入在Spring框架中,依赖注入(DI)是一种核心功能,它允许对象通过构造函数、setter方法或字段直接定义其依赖关系。这里,我们专注于两种......
  • Spring 知识点
    SpringSpring是什么?Spring为了解决企业级应用的复杂性而创建,简化开发。如下简化:基于POJO的轻量级和最小侵入性编程;以IoC(控制反转)、DI(依赖注入)和面向接口实现松耦合;基于AOP(切面编程)和惯性进行声明式编程;以切面和模版减少样式代码;SpringIoC(控制反转)IoC负责创建、......
  • springboot-yaml语法
    SpringBoot使用一个全局的配置文件,配置文件名称是固定的application.properties语法结构:key=valueserver.port=8080application.yml语法结构:key:空格value普通的key-valueserver:port:8080yaml后缀配置可以存储对象,而properties只能保存键值对yaml不仅可以用来......
  • Spring中使用自带@Autowired注解实现策略模式
    场景SpringBoot中策略模式+工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130503707设计模式-策略模式在Java中的使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/d......
  • 【2024面试刷题】二、Spring Cloud 面试题之Hystrix
    1、springcloud断路器的作用是什么?答:当一个服务调用另一个服务由于网络原因或自身原因出现问题时,调用者将等待被调用者的响应当更多的服务要求这些资源导致更多的请求等待时,就会出现连锁效应(雪崩效应)。断路器完全打开:一段时间内达到一定次数不能调用并且多次监测无恢复迹象......