|
|
|
@ -45,7 +45,7 @@ public class BeanFactoryAdvisorRetrievalHelper { |
|
|
|
|
private final ConfigurableListableBeanFactory beanFactory; |
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
|
private String[] cachedAdvisorBeanNames; |
|
|
|
|
private volatile String[] cachedAdvisorBeanNames; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -66,9 +66,7 @@ public class BeanFactoryAdvisorRetrievalHelper { |
|
|
|
|
*/ |
|
|
|
|
public List<Advisor> findAdvisorBeans() { |
|
|
|
|
// Determine list of advisor bean names, if not cached already.
|
|
|
|
|
String[] advisorNames = null; |
|
|
|
|
synchronized (this) { |
|
|
|
|
advisorNames = this.cachedAdvisorBeanNames; |
|
|
|
|
String[] advisorNames = this.cachedAdvisorBeanNames; |
|
|
|
|
if (advisorNames == null) { |
|
|
|
|
// Do not initialize FactoryBeans here: We need to leave all regular beans
|
|
|
|
|
// uninitialized to let the auto-proxy creator apply to them!
|
|
|
|
@ -76,7 +74,6 @@ public class BeanFactoryAdvisorRetrievalHelper { |
|
|
|
|
this.beanFactory, Advisor.class, true, false); |
|
|
|
|
this.cachedAdvisorBeanNames = advisorNames; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (advisorNames.length == 0) { |
|
|
|
|
return new ArrayList<>(); |
|
|
|
|
} |
|
|
|
|