Ранее этот код работал нормально:
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
class CustomTraceableExecutorServiceImpl implements ExecutorServiceProvider {
@Qualifier(value = "defaultExecutorService")
private final ExecutorService executorService;
@Qualifier(value = "scheduledTimeoutExecutorService")
private final ScheduledExecutorService scheduledExecutorService;
private final Tracer tracer;
private final SpanNamer spanNamer;
@Override
public ExecutorService get() {
return new TraceableExecutorService(executorService, tracer, new TraceKeys(), spanNamer);
}
@Override
public ScheduledExecutorService getScheduled() {
return new TraceableScheduledExecutorService(scheduledExecutorService, tracer, new TraceKeys(), spanNamer);
}
}
Но теперь TraceableExecutorService
конструктор занимает TraceableExecutorService(BeanFactory beanFactory, final ExecutorService delegate)
, поэтому мне нужно изменить код на sth, например:
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
class CustomTraceableExecutorServiceImpl implements ExecutorServiceProvider {
@Qualifier(value = "defaultExecutorService")
private final ExecutorService executorService;
@Qualifier(value = "scheduledTimeoutExecutorService")
private final ScheduledExecutorService scheduledExecutorService;
//@Qualifier(value = "defaultBeanFactory")
@Autowired
private final BeanFactory beanFactory;
//@Qualifier(value = "scheduledBeanFactory")
@Autowired
private final BeanFactory scheduledBeanFactory;
@Override
public ExecutorService get() {
return new TraceableExecutorService(beanFactory, executorService);
}
@Override
public ScheduledExecutorService getScheduled() {
return new TraceableScheduledExecutorService(scheduledBeanFactory, scheduledExecutorService);
}
}
Проблема, которую яесть около BeanFactory
я не знаю, как его создать?У меня нет xml
файла, который я мог бы использовать.
Как я прочитал здесь: Каковы различные способы создания beanfactory объекта? Мы можем создать это BeanFactory
с помощью:
1. BeanFactory fac=new ClassPathXmlApplicationContext("Spring-Config.xml");
2. Resource res=new Classpathresource("Spring-Config.xml");
BeanFactory fac=new XmlBeanFactory(res);
Как я могу создать его просто, если у меня нет файла xml
?Я просто хочу, чтобы мой код был совместим со старой версией (версия SpringBoot 1.5).