합니까 CDI
을 풀링하는 것은? 어떤 방법으로 풀링 할 수 있습니다. 그래서 예를 들어있는 경우이 두 콩CDI와 나는이 <code>EJB</code> 콩의 기능입니다 아담 비엔 컨테이너 반사를 통해 클래스의 새 인스턴스를 만들거나 기존의 것을 사용할지 여부를 선택이 <a href="http://www.adam-bien.com/roller/abien/entry/dependency_injection_8230_and_there" rel="nofollow">screencast</a> 말한다 생각하기 때문에
@RequestScoped
public class RequestBean {
public void doIt() {
}
}
@SessionScoped
public class SessionBean {
@Inject
private RequestBean bean;
public void doSomething() {
bean.doIt();
}
}
질문은 - 수영장에 doSomething
또는 CDI
컨테이너가 어떻게 든 관리 않습니다 인스턴스를 호출시 생성 RequestBean
의 항상 새로운 인스턴스가?
좋은 설명, 고마워! –
하지만 한 가지 질문 - EJB에 풀링되는 Stateless beans의 요점은 무엇인가?에 기초하여 같지 않습니까? 나는 컨테이너가 상태없는 빈을 만들어 풀에 넣은 다음 요청시 철회한다고 가정합니다 모든 필드를 null로 재설정하고 다시 풀에 넣습니다. 그렇다면 이것이 왜 Stateless bean으로 작동하고 RequestScoped bean으로 작동하지 않는지, 나는 그 차이를 볼 수 있을지 확신 할 수 없다. (EJB Stateless Bean과 CDI RequestScoped는 나에게 꽤 비슷해 보인다.) –
Stateless Bean은 Stateless이다. 따라서 대화식 상태가되어서는 안되며 개발자는 필드에 항목을 저장하면 나중에 재사용 할 때 다시 가져올 수 있음을 알고 있습니다. 상태없는 콩이 지금 발명 되었다면 아마도 풀링되지 않을 것입니다. 그러나 그들은 객체 할당이 지금만큼 빠르지 않았던 순간 (2000 년경)에 발명되었고, 우리가 지금 가지고있는 모든 경험이 없었습니다. –