spring源碼獲取所有Advisor記錄

接着上一篇spring實例化包含@Transational註解類(不論是類上還是方法上)的流程。

1.在BeanPostProcesser的實現類AbstractAutoProxyCreator的wrapIfNecessary方法裏調用getAdvicesAndAdvisorsForBean方法

2.在其父類AbstractAdvisorAutoProxyCreator的getAdvicesAndAdvisorsForBean方法裏會調用findEligibleAdvisors方法

3.在findCandidateAdvisors方法裏委託advisorRetrievalHelper屬性查找advisor,這裏的advisorRetrievalHelper的類型是BeanFactoryAdvisorRetrievalHelper

 
 

4.在findAdvisorBeans方法裏首先使用BeanFactoyUtils根據類型獲取所有的beanName,再調用getBean方法獲取所有Advisor實例對象