При внедрении бина CDI @SessionScoped в другой компонент относится к одному сеансу? - PullRequest
3 голосов
/ 21 ноября 2011

Я пишу приложение JSF, и мне нужно внедрить именованный компонент в другой, например:

@Named
@SessionScoped
public class BeanA implements Serializable{
    @Inject private BeanB b;
    public void doSth(){
        b.doSth();
    }
}

@Named
@SessionScoped
public class BeanB implements Serializable{}

Оба они являются SessionScoped, и я надеюсь, что экземпляр BeanA и его внедренныйBeanB будет содержать одно и то же состояние сеанса.

Выбирает или создает экземпляр BeanB случайным образом или выбирает экземпляр с тем же идентификатором сеанса? Спасибо!

1 Ответ

1 голос
/ 04 декабря 2011

Оперативная часть состоит в том, что BeanB имеет сессионную область, поэтому всякий раз, когда вы вводите один (независимо от того, как или где (кроме @New)), он будет управляться на основе текущего сеанса.

...