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

编辑切换为居中

添加图片注释,不超过 140 字(可选)

这里把拓展接口分成了四大类 1. 导入类拓展接口

编辑

添加图片注释,不超过 140 字(可选)

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

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

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

Tips: 以上的接口都是搭配 @Import、@Configuration使用的。 例如用来实现自定义的Enablexxx功能 这些拓展类的相关实现可以看一下我实现的一个如何丝滑的记录日志的一个组件。项目地址:

  • github.com/mxsm/mxsm-l…

2. AOP相关接口

编辑

添加图片注释,不超过 140 字(可选)

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

  • StaticMethodMatcherPointcut 切点实现

  • AbstractBeanFactoryPointcutAdvisor 通知器实现

  • MethodInterceptor 切面实现

3. Bean后置处理器接口

编辑切换为居中

添加图片注释,不超过 140 字(可选)

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

  • SmartInstantiationAwareBeanPostProcessor

  • InstantiationAwareBeanPostProcessor

  • DestructionAwareBeanPostProcessor

  • MergedBeanDefinitionPostProcessor

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

编辑

添加图片注释,不超过 140 字(可选)

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

  • ApplicationContextAware

  • BeanNameAware

  • ApplicationEventPublisherAware

  • BeanClassLoaderAware

  • BeanFactoryAware

  • NotificationPublisherAware

  • EnvironmentAware

其他的在自定义拓展的过程中使用的频率都没用那么的高 5. 使用小技巧 对于上面这么多拓展的接口如何使用,下面有一些自己在开发过程中的一些小心得:

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

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

Spring常用的拓展接口分门别类相关推荐

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

    Spring 框架是一个拓展性很好的框架,在平时的开发中我们也会进行一些拓展.那么来看一下常用的拓展类: ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 这里把拓展接口分成了四大类 1. ...

  2. 常用的一些拓展:Spring拓展接口分门别类

    Spring框架是一个拓展性很好的框架,在平时的开发中我们也会进行一些拓展.那么来看一下常用的拓展类: ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 这里把拓展接口分成了四大类 1. ...

  3. springbean的生命周期_spring bean生命周期(涵盖spring常用接口的载入)

    spring bean生命周期流程图: ​ ​​​ 其中包含了很多常用的接口,可以参考spring 常用接口: 下面写个例子证明下: 1.实现InitializingBean以及各个Aware接口 p ...

  4. Spring系列之Spring常用注解总结

    参看博客:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺 ...

  5. Spring常用注解总结

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文 ...

  6. spring autowired idea都匹配上了_你清楚这几个Spring常用注解吗?

    作者:平凡希http://cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 如 ...

  7. Java 必须掌握的 12 种 Spring 常用注解

    转载自  Java 必须掌握的 12 种 Spring 常用注解 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repo ...

  8. autowired注解_Spring系列之Spring常用注解总结

    作者:平凡希来源:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做 ...

  9. sessionattribute 被spring 扫描不到_Spring 系列之 Spring 常用注解总结(肝硬化的干货)...

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1. 如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml ...

最新文章

  1. Gartner:企业架构开始更加紧密地向业务看齐
  2. BOM validation - cannot find where this error message is raised
  3. bcm943602cs蓝牙用不了_原来手机的蓝牙功能这么强大!除了连接耳机,还有这六大实用功能...
  4. mysql查询结果输出文件_如何将MySQL查询输出保存到文件?
  5. 剑指offer——面试题41-2:和为S的两个数字
  6. NLP学习—23.基于Transformer的机器翻译实战
  7. 《数字电子技术基础》3.3 CMOS门电路(下)
  8. Termux字体大小调整
  9. DMTF Redfish 概念介绍
  10. FileZilla Server使用实践
  11. linux du -h按文件大小,linux中du的用法
  12. win7打开xp共享的计算机,高手教你如何让XP与Win7系统局域网共享
  13. python判断中文近义词_近义词查询工具easySynonyms
  14. MBR10100FCT-ASEMI肖特基二极管MBR10100FCT
  15. linux 远程启动WebLogic
  16. 路由器不同网段虚拟服务器设置,局域网中不同网段互访?静态路由表必须要学会设置...
  17. 雷神笔记本做java,八代酷睿+144Hz电竞屏 雷神迎来新911黑幽灵游戏本评测
  18. Linux----putty下载安装教程
  19. 协方差及协方差矩阵的理解
  20. redux与react-redux

热门文章

  1. codeforces 467B - Fedor and New Game
  2. 无线蓝牙耳机哪个牌子的好?无线蓝牙耳机分享
  3. sikuli python java_python+sikuli环境搭建
  4. Linux项目实战——初创公司服务器改造优化
  5. 【JZOJ 4599】西行妖
  6. FPGA时序约束与分析 (2)--- primary clock主时钟约束
  7. 视觉系统构建(三)——视觉光源
  8. 选择偏好_网站如何记住您的偏好(以及关于Cookie的选择)?
  9. 防踩坑宝典:对接支付渠道二三事
  10. GraphConvolutionalNetworksforTextClassification 代码笔记