ejb-mini-logo

L’EJB singleton è una classe che viene istanziata per applicazione. l’EJB vive per tutta la durata dell’applicazione. La classe viene annotata con @singleton.

Di solito un singleton viene istanziato quando vuole l’EJB Container, ma possiamo anche influenzare questa cosa annotando la classe come @startup (diciamo all’EJB container di caricare il nostro EJB all’inizio).

@DependsOn è un’annotazione usata per dire all’EJB container la dipendenza tra ejb.

@Singleton
@Startup
@DependsOn(“MyLogEJB “)
public class MyLogEJB {

public void logShopperCount() {

}

}

i metodi di callback, per gli ejb singleton sono:

@PostConstruct

@PreDestroy

con questo genere di ejb, dobbiamo pensare alla concorreza.

ci sono due modi di gestirla:

Container-Managed concurrency se ne occupa il container. si annota un metodo con l’annotazione @lock.

@Lock(LockType.WRITE)
public void operazione1() {

}

@Lock(LockType.READ)
public void operazione2() {
….
}

Bean-Managed concurrency se ne occupa il programmatore.