15. Il container crea l'istanza dell'oggetto allo start dell'applicazione o alla richiesta di un client e lo inietta all'interno di una classe in cui lo si vuole usare
66. AA non deve configurare i stub di home e objetct. Configurare nell'xml e sarà compito dell'Container generarli per ogni classe che estende Home e Object
67.
68.
69. @Stateless -> dice al container che la classe è una stateless bean. Così facendo avremo gestito dal container concorrenza, thread, pooling and transaction
70. @Local -> può essere accessa localmente attraverso l'interfaccia. Nella stessa applicazione
71. @Remote -> può essere accessa in remote. Cioè in diverse JVM @Stateless public class ExStatelessBean implements ExStateless { ..... public ExStatelessBean(){} public void addBid() { … .. } .... } package capitolo3.esercizio1.stateless; import javax.ejb.Local; @Local public interface ExStateless { void addBid(); }
72.
73. @EJB -> il container attraverso DI inietta l'EJB nella classe così potremo utilizzarlo. E' l'opposto del JNDI perchè con il JNDI le risorse venivano prese dalla classe e non dal container
74. Il client non ha nessuna conoscenza dell'ejb ma lo utilizza solamente -> basso accoppiamento. public class StatelessServlet extends HttpServlet{ @EJB private ExStateless ejbBean ; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { … . ejbBean .addBid(); ... } }
75.
76. Container assicura che l'instanza del bean sarà mantenuta per la durata della sessione senza scrivere codice per la sessione.
77. @Stateful -> dice al container che il bean è di tipo stateful
78. @Remove -> ultimo metodo invocato nel workflow. Quindi è l'ultimo metodo e distrugget il bean deallocando memoria @Stateful public class ExStatefullBean implements ExStatefull { @Override public void addBid() { … .. } @Remove public Long confirm(){ return new Long(0); }} … . @Local public interface ExStatefull { void addBid();}
79.
80. @EJB -> il container attraverso DI inietta l'EJB nella classe così potremo utilizzarlo. E' l'opposto del JNDI perchè con il JNDI le risorse venivano prese dalla classe e non dal container
81. Il client non ha nessuna conoscenza dell'ejb ma lo utilizza solamente -> basso accoppiamento
82. Uguale al stateless. public class StatefullServlet extends HttpServlet{ @EJB private ExStatefull ejbBean ; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub ejbBean .addBid(); } }