ZAWWW-2st1.2-w04.tresc-1.0-Slajd16
Uzyskanie referencji do EJB przez klienta - dependency injection
Gdy sesyjny komponent EJB jest instalowany (ang. deployed) w kontenerze EJB, jego interfejs biznesowy jest rejestrowany w rejestrze JNDI kontenera. Istnieją dwa sposoby uzyskania przez klienta referencji do komponentu EJB: wstrzyknięcie referencji mechanizmem dependency injection lub jawne wyszukanie komponentu w rejestrze JNDI operacją lookup. Pierwszy, nowszy sposób jest przedstawiony na niniejszym slajdzie, drugi będzie zaprezentowany na slajdzie następnym. Niezależnie od sposobu jej uzyskania, referencja do komponentu jest typu interfejsu biznesowego komponentu (zdalnego lub lokalnego).
W przypadku wstrzykiwania referencji mechanizmem dependency injection do pola w klasie klienta, należy pamiętać o tym, że w przypadku klienta aplikacyjnego pole w klasie, do którego będzie wstrzykiwana referencja musi być statyczne. Jest to spowodowane tym, że działanie klienta aplikacyjnego rozpoczyna się w kontekście statycznym (od statycznej metody main()).
Wg specyfikacji EJB 3.0, domyślnie komponent EJB jest rejestrowany w rejestrze JNDI pod nazwą będącą w pełni kwalifikowaną nazwą interfejsu biznesowego. W takim wypadku pole w klasie klienta, do którego wstrzykiwana jest referencja do komponentu, jest oznaczane adnotacją @EJB bez żadnych atrybutów.
Gdy komponent został zarejestrowany w JNDI pod inną nazwą niż domyślna, należy w adnotacji @EJB podać tę nazwę poprzez atrybut „name”.
Po uzyskaniu referencji do komponentu, klient korzysta z niego wywołując na rzecz referencji metody zawarte w interfejsie biznesowym, co zostało zilustrowane w pierwszym przykładowym fragmencie kodu na slajdzie.