CDI
позволяет пул в некотором роде? Потому что я думал, что это особенность бобов EJB
, но Адам Бьен говорит в этом screencast, что контейнер выбирает, следует ли создавать новый экземпляр класса через отражение или использовать существующий. Так что, если у меня есть, например, эти два фасольCDI и пул
@RequestScoped
public class RequestBean {
public void doIt() {
}
}
@SessionScoped
public class SessionBean {
@Inject
private RequestBean bean;
public void doSomething() {
bean.doIt();
}
}
вопрос - это всегда новый экземпляр RequestBean
создается при вызове doSomething
или же CDI
контейнера какого-то образом управлять экземпляры в пуле?
Хорошее объяснение, спасибо! –
Но, может быть, один вопрос, основанный на том, что сказал, что такое пул фанатов без статусов в EJB, не то же самое? Я полагаю, что в контейнере создается компонент без состояния, помещая его в пул, а затем вынимает его по запросу а затем сбросьте все поля до нуля и верните их в пул. Итак, почему это работает с фасолью без статусов, а не с 'RequestScoped', я не уверен, могу ли я увидеть разницу. (EJB Faceless bean и CDI RequestScoped мне кажется довольно похожим) –
Бит без статусов должен быть без гражданства. Поэтому у него не должно быть диалогового состояния, и разработчик знает, что если он что-то хранит в поле, он может вернуть его, когда он будет повторно использован позже. Если бы фанаты без гражданства были изобретены сейчас, они, вероятно, не были бы объединены. Но они были изобретены одновременно (около 2000 года), когда распределение объектов было не таким быстрым, как сейчас, и когда у нас не было всего опыта, который у нас есть сейчас. –