2017-07-24 3 views
0

Die Spezifikationen für 3.2 EJB Abschnitt 3.4.7.2 Stateless Session Beans zeigen Code folgende Gleichheit zu demonstrieren:Stateless Session Beans Objektidentität

@EJB Cart cart1; 
@EJB Cart cart2; 
... 
if (cart1.equals(cart1)) { // this test must return true 
... 
} 

Antwort

0

Nun, es nicht offensichtlich ist, sind wir infact reden über Verweise auf Proxies verwaltet durch den Behälter.

Das Beispiel wird jedoch meistens zusammen mit der Stateful Bean verwendet, wobei die gleiche Instruktionsrückgabe false ist. Der Container gibt in diesem Fall eine neue Referenz zurück, und Sie erhalten zwei unterschiedliche Beans.

UPDATE

Uhm ... Ich habe einen Fehler, als ich cart1.equals(cart2) gelesen haben. In diesem Fall muss ich sagen, dass es fast offensichtlich ist, wie Sie bemerkt haben.

Nur weil es keine einfache Referenz ist, die Sie mit new erhalten haben, aber es ist etwas, das der App-Server für Sie verwaltet, ist es gut zu wissen, dass es Ihnen die gleiche Objektidentität liefert. Dies gilt insbesondere für den Fall einer Stateful.

Im Moment kann ich keinen sinnvollen Zweck für eine Stateless Bean für die gleiche Objektidentität im Vergleich zu einer Stateful denken, aber ich bin sicher, dass es einige Beispiele gibt.

+0

tatsächlich nach den Angaben in Abschnitt 3.4.7.1 'Stateful' Session Beans muss die Anweisung' cart1.equals (cart1) '- auch -' true' zurückgeben – ken

Verwandte Themen