Dependency Injection

Dependency Injection (DI) bedeutet: nicht du erstellst deine Abhängigkeiten — der Container gibt sie dir.

Du schreibst niemals new, du nutzt @EJB / @Inject.

I. Beispiel


@WebServlet("/hallo")
public class HelloServlet extends HttpServlet {

    @EJB                          // Container füllt das Feld
    private HelloBean helloBean;  // kein "new" nötig!
}

II. Warum DI?


III. Annotationen für DI


Annotation Quelle Für
@EJB EJB-Spec EJBs
@Inject CDI Alle Beans
@PersistenceContext JPA EntityManager
@Resource Java EE Datasource, Mail, ...
.NET-Vergleich

Constructor-DI mit services.AddX<>() in Program.cs. Hier ist die Annotation die Registrierung.