Dependency injection with CDI

Java EE provides a framework such as CDI. With CDI, we can inject any container-controlled object into another with compile-time type safety. The problem, though, is the objects in question need to be container controlled, which our MongoDB API objects are not. Fortunately, CDI provides a means by which the container can create these instances, a facility known as producer methods. What might this look like? Let's start with the injection point, as that is the simplest piece:

    @Inject 
    @Collection("notes") 
    private MongoCollection<Document> collection; 

When the CDI container sees @Inject, it inspects the element the annotation is on to determine the type. It will then attempt to look up an instance that will satisfy ...

Get Java 9: Building Robust Modular Applications now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.