Я пишу проект с Spring Boot 1.5.8.У меня есть несколько классов Entity, которые создаются и содержат bean-компонент (например, FooBean), который существует только в области запроса.Что важно: я не могу изменить эту часть кода.Итак, предположим, что у меня есть Entty:
@Enitty
public class FooEntity{
@Transient protected FooBean fooBean;
}
и реализация FooBean:
@Component
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class FooBean {
...
}
У меня также есть некоторая часть кода, где у меня есть метод, который должен быть запущен Spring CRON:
@Scheduled(cron = "0 0/2 * * * ?")
@Transactional(value = Transactional.TxType.REQUIRES_NEW)
void scheduledTask() {
...
}
Что важно: в этой запланированной задаче я сохраняю несколько экземпляров FooEntity в БД.И конечно: когда я пытаюсь вызвать repository.saveAll (), Spring вызывает исключение:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.fooBean ': Scope 'request' is not active for the current thread;
Есть ли возможность решить эту проблему?Как я могу переопределить этот bean-объект области видимости, чтобы он был доступен в области отсутствия запросов?