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. CF533A Berland Miners
  2. 寒假训练,2.25,J-Palindrome Names (回文
  3. SharePoint 集成OWA概述
  4. Hadoop详解(八):MapReduce深度分析
  5. 洛谷——P1548 棋盘问题
  6. 环境变量_UG环境变量设置
  7. Django Abstract Models使用下划线设置related_name
  8. methodhandle_概览Java 7 MethodHandle及其用法
  9. 一文搞懂JVM架构:跳槽面试大厂被拒
  10. 最精确的噪音测试软件,关于噪音测试App的选择与使用
  11. 神经网络物联网未来发展趋势怎么样
  12. ❤️工作半年前端的一些思考 | 共勉
  13. 最新版UI视频解析单页源码附带超清接口
  14. html安卓修改器,让安卓面目全非:尖兵手机修改器
  15. 洛谷P3537 [POI2012]SZA-Cloakroom(背包)
  16. POJ1091跳蚤(容斥 + 唯一分解 + 快速幂)
  17. free源码分析---1
  18. SigFox与LoRa技术原理、应用场景和商业模式上的比较
  19. 中文版Ubuntu系统转为英文版Ubuntu
  20. 拼多多虚拟资源、虚拟店铺教程

热门文章

  1. BD Rhapsody单细胞分析系统
  2. JavaScript计时事件
  3. MySQLi扩展的使用
  4. python-筛选文件匹配模块glob
  5. 2021年危险化学品经营单位安全管理人员免费试题及危险化学品经营单位安全管理人员实操考试视频
  6. Centos安装XSS平台
  7. nginx安装过程及常用命令
  8. 计算机单元格式,2017《职称计算机》知识点:设置单元格格式
  9. 利用Python来制作网易阴阳师的游戏脚本,爆肝是不可能爆肝的
  10. 机器学习十大算法之Matlab-9降维算法