внедрение зависимостей с условием (перекрестные зависимости)
Есть проект, где используются CDI бины с областью видимости - сессия. Во время инициализации (и работы) одного из бинов должны выполняться функции другого бина. Но это "другой бин" так же использует данные первого бина. Т.е. происходит ситуация с перекрестным вызовом из одного бина другого бина и наоборот (бесконечный цикл).
@Named
@SessionScoped
public class A implements Serializable{
@Inject
private B b;
public String testS = "test";
@PostConstruct
private void init(){
b.f1();
}
}
@Named
@SessionScoped
public class B implements Serializable{
@Inject
private A a;
public void f1(){
System.out.println(a.testS);
}
}
Я так понял, что ситуация такая т.к. процедура инициализации класса А не завершается и его сессионный экземпляр так и не успевает быть созданным. Как можно завершить процедуру инициализации класса А и выполнить b.f1() сразу после? Или есть ли какие то еще варианты как можно "обойти" возникающую ошибку?