首页>>后端>>Spring->Spring常用的拓展接口分门别类

Spring常用的拓展接口分门别类

时间:2023-11-30 本站 点击:0

Spring框架是一个拓展性很好的框架,在平时的开发中我们也会进行一些拓展。那么来看一下常用的拓展类:

ImportAware

从Spring的源码注释来看ImportAware接口是需要和@Import一起使用的。通过@Import导入的配置类如果实现了ImportAware接口就可以获取到导入该配置类接口的数据配置。同时需要搭配 @Configuration注解

例如Spring实现的注解@ EnableAsync 中的 ProxyAsyncConfiguration 就实现了。

ImportSelector,DeferredImportSelector

动态导入配置类,例如Spring的实现:@ EnableAsync

ImportBeanDefinitionRegistrar

可以实现自己的注解管理自己的Bean。例如Spring注解: @EnableAspectJAutoProxy

Tips: 以上的接口都是搭配 @Import、@Configuration使用的。 例如用来实现自定义的Enablexxx功能

2. AOP相关接口

对于AOP记住三点就好,Advisor、Advice、Pointcut。所以Spring提供了三个对应的接口来给使用者拓展实现。

StaticMethodMatcherPointcut

切点实现

AbstractBeanFactoryPointcutAdvisor

通知器实现

MethodInterceptor

切面实现

3. Bean后置处理器接口

对于Bean的后置处理器接口主要都是实现了 BeanPostProcessor 接口

SmartInstantiationAwareBeanPostProcessor

InstantiationAwareBeanPostProcessor

DestructionAwareBeanPostProcessor

MergedBeanDefinitionPostProcessor

就是来自定义Bean的管理和对Bean进行功能增强。例如Spring AOP的实现就是实现了 SmartInstantiationAwareBeanPostProcessor 接口。实现自定义注解就可以使用当前的这些处理器来实现。

4. Aware类型接口

aware类型接口比较多,主要的作用就是在继承了相对应的aware接口的Bean里面可以获取到相对应的aware对象。这里平时日常的开发过程中使用的比较多的:

ApplicationContextAware

BeanNameAware

ApplicationEventPublisherAware

BeanClassLoaderAware

BeanFactoryAware

NotificationPublisherAware

EnvironmentAware

其他的在自定义拓展的过程中使用的频率都没用那么的高

5. 使用小技巧

对于上面这么多拓展的接口如何使用,下面有一些自己在开发过程中的一些小心得:

参照Spring源码的实现进行拓展,这个准没错。Spring本身实现的源码就是一个很好的例子。例如你要自己开发一个 @EnableXXXX 的注解功能。那么你可以参照一下Spring源码中实现的 @EnableAsync、@EnableTransactionManagement 等一些注解来作为参照

参照一些开源系统的Spring支持系列框架,这里面有很多基于Spring的自定义注解实现。这些例子也给自己去拓展平时工作中的注解等做了很好的参考和例子。比如:例如 Nacos Spring 项目


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Spring/4485.html