主要流程:
    获取增强器,如果为空的话就返回空的数组。
    protected static final Object[] DO_NOT_PROXY = null;

    1. @Override
    2. @Nullable
    3. protected Object[] getAdvicesAndAdvisorsForBean(
    4. Class<?> beanClass, String beanName, @Nullable TargetSource targetSource) {
    5. List<Advisor> advisors = findEligibleAdvisors(beanClass, beanName);
    6. if (advisors.isEmpty()) {
    7. return DO_NOT_PROXY;
    8. }
    9. return advisors.toArray();
    10. }
    1. protected List<Advisor> findEligibleAdvisors(Class<?> beanClass, String beanName) {
    2. // 候选增强
    3. List<Advisor> candidateAdvisors = findCandidateAdvisors();
    4. // 过滤得到可用增强
    5. List<Advisor> eligibleAdvisors = findAdvisorsThatCanApply(candidateAdvisors, beanClass, beanName);
    6. // 扩展增强
    7. extendAdvisors(eligibleAdvisors);
    8. if (!eligibleAdvisors.isEmpty()) {
    9. // 排序
    10. eligibleAdvisors = sortAdvisors(eligibleAdvisors);
    11. }
    12. return eligibleAdvisors;
    13. }

    最终来到方法 findEligibleAdvisors ,
    这里主要分3步完成,首先找到所有增强,然后过滤出当前可用的,再扩展处理下,最后排序返回🔙 。