Singleton scope

If we want to create only one instance of the class, then the @Singleton annotation can be used to mark the implementation class. As long as a the singleton object lives, the injector lives in context, but in the same application, it is possible to have multiple injectors, and in that case, each injector is associated with a different instance of a singleton-scoped object:

@Singletonpublic class DatabaseConnection{    public void connectDatabase(){    }    public void disconnectDatabase(){    }}

Another way to configure a scope is by using a bind statement in the module:

public class ApplicationModule extends AbstractModule{  @Override  protected void configure() {    //bind service to implementation class bind(NotificationService.class).to(SMSService.class).in(Singleton.class); ...

Get Java 9 Dependency Injection 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.