提交 b4835d40 authored 作者: jiabao1's avatar jiabao1

fix:修复xxlJob initJobHandlerMethodRepository 调用getBean方法 提前初始化Bean 导致懒加载注解失效问题

上级 3cf27f90
...@@ -11,6 +11,7 @@ import org.springframework.beans.factory.DisposableBean; ...@@ -11,6 +11,7 @@ import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.beans.factory.SmartInitializingSingleton;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.MethodIntrospector; import org.springframework.core.MethodIntrospector;
import org.springframework.core.annotation.AnnotatedElementUtils; import org.springframework.core.annotation.AnnotatedElementUtils;
...@@ -84,7 +85,14 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC ...@@ -84,7 +85,14 @@ public class XxlJobSpringExecutor extends XxlJobExecutor implements ApplicationC
// init job handler from method // init job handler from method
String[] beanDefinitionNames = applicationContext.getBeanNamesForType(Object.class, false, true); String[] beanDefinitionNames = applicationContext.getBeanNamesForType(Object.class, false, true);
for (String beanDefinitionName : beanDefinitionNames) { for (String beanDefinitionName : beanDefinitionNames) {
Object bean = applicationContext.getBean(beanDefinitionName); Object bean = null;
Lazy onBean = applicationContext.findAnnotationOnBean(beanDefinitionName, Lazy.class);
if (onBean!=null){
logger.debug("xxl-job skip @Lazy Bean:{}",beanDefinitionName);
continue;
}else {
bean = applicationContext.getBean(beanDefinitionName);
}
Map<Method, XxlJob> annotatedMethods = null; // referred to :org.springframework.context.event.EventListenerMethodProcessor.processBean Map<Method, XxlJob> annotatedMethods = null; // referred to :org.springframework.context.event.EventListenerMethodProcessor.processBean
try { try {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论