Spring中的可扩展接口

1.监听器Listener(点此连接,执行流程带源码分析及demo)

2.bean定义的后置处理器(BeanDefinitionRegistryPostProcessor)和bean工厂的后置处理器(BeanFactoryPostProcessor):详见Spring IOC(2)----如何注册bean定义(点此连接,带源码分析)的第9点和10点

3.Aware接口:主要用于给对象注入某个属性的值。下层有多个扩展接口

  BeanNameAware 实现setBeanName()方法,注入该bean在容器的name

  ApplicationContextAware 实现setApplicationContext() 可以为bean注入上下文对象ApplicationContext

  BeanFactoryAware 实现setBeanFactory(),可以注入容器工厂

  BeanClassLoaderAware 注入类加载器

4.BeanPostProcessor:bean的后置处理器,初始化前后调用,有前后两个方法postProcessBeforeInitialization,postProcessAfterInitialization

5.InitializingBean:实现afterPropertiesSet()方法

看下spring IOC源码中这三个接口调用顺序AbstractAutowireCapableBeanFactory#initializeBean()中:

这里的Aware接口只会调用这三种:

------------------------------

eureka整合进spring是通过lifecycle接口

nacos整合进spring是通过applicationListener接口

ribbon是通过拦截器

feign和mybatis一样都是通过factorybean

原文地址:https://www.cnblogs.com/nijunyang/p/12346256.html