JEE en CDI (CONTEXT DEPENDENCY INJECTION)

CDI is een JEE techniek die het mogelijk maakt om JavaBeans benaderbaar te maken voor clients zoals andere JavaBeans of Web componenten en dat binnen (local) of buiten de eigen applicatie of zelfs buiten de eigen hardware (remote). Daarvoor wordt gebruik gemaakt van @ annotaties. In JEE6 zijn niet alleen EJB’s zoals Session Beans benaderbaar voor externe clients, maar ook gewone JavaBeans. En een JavaBean is feitelijk een gewone Java class (POJO) die is voorzien van annotatie decoraties die de class daarmee definieren als onderdeel van de JEE omgeving, ook wel de “container” genoemd.

Je hoeft dus niet altijd EJB’s te gebruiken voor business logic. EJB’s gebruik je vooral als je zaken als Transaction management nodig hebt.

@Inject

De meest standaad DI vindt plaats met @Inject waarmee elke class (ook EJB’s) geinjecteerd kan worden. In onderstaand voorbeeld wordt de POJO “Greeting” geinjecteerd met @Inject in de class Printer:

public class Greeting {
	public String greet(String name) {
		return "Hello " + name;
	}
}

public class Printer {

@Inject
Greeting greeting;
……
        System.out.println(greeting.greet("John"));
…..
}

Scope

De scope waarmee de state binnen een met @Inject geinjecteerde Bean moet worden behandeld wordt gedefinieerd door scope annotaties:

  • @RequestScoped: scope binnen een web interactie met één http request
  • @SessionScoped : scope binnen een web interactie over meerdere http requests
  • @ApplicationScoped : gedeelde state over alle web interacties van alle gebruikers
  • @Dependent : (Default) De scope en lifecycle is gericht op één client Bean
  • @ConversationScoped : De scope wordt bepaald door een JSF applicatie

NB: Deze scope annotaties zijn NIET bedoeld voor Servlets en EJB’s. Servlets en Stateless Session Beans hebben geen state. Singleton Beans hebben shared state voor alle clients.

This entry was posted in JEE and tagged . Bookmark the permalink.

One Response to JEE en CDI (CONTEXT DEPENDENCY INJECTION)

  1. rs gp says:

    Ahaa, its pleasant conversation on the topic of this paragraph here at this web site, I have read all that, so now me also commenting here. rs gp http://gold4game.ueuo.com/2013/04/what-arrives-about-when-youve-certified-all-of-your-know-how-to-level-99/

Geef een reactie

Je e-mailadres wordt niet gepubliceerd.

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>