Ошибка циклических зависимостей в Spring при использовании функции автоподключения - PullRequest
0 голосов
/ 19 октября 2018

Я использую весеннюю загрузку версии 1.5.10.RELEASE (одна из последних) с этим кодом:

@Service
public class AService {

private AService aService; //Self autowire

public AService(AService aService){
    this.aService = aService;
}

@Cacheable(value = "aCacheName")
public List<SomeClass> expensiveOperation(){
    //Very expensive operation that can be cached
}

public List<SomeClass> otherOperation(){
    return aService.expensiveOperation().otherOperation()); //Call proxy, can't use this.expensiveOperation() because it will bypass the cache
}
}

Я получаю эту ошибку:

"Theзависимости некоторых bean-компонентов в контексте приложения образуют цикл. "

Я знаю, что Spring допускает" Самовывоз ", что я делаю неправильно?

Спасибо.

1 Ответ

0 голосов
/ 19 октября 2018

А что не так с this ??Также вы можете пометить его как @Lazy и использовать поле autowire или установщик, застрахованный от конструктора.Вы не сможете сделать это с помощью конструктора IMHO, поскольку вы никогда не сможете предоставить экземпляр для построения.

...