In guice, the @Singleton scope does not refer to the Singleton pattern.
According to the "Dependency Injection" book of "Dhanji" :
Very simply, a singleton’s context is the injector itself. The life of a singleton is tied to the life of the injector (as in figure 5.8). Therefore, only one instance of a singleton is ever created per injector. It is important to emphasize this last point, since it is possible for multiple injectors to exist in the same application. In such a scenario, each injector will hold a different instance of the singleton-scoped object.
Is it possible to share the same Singleton instance through multiple modules and multiple injectors ?
You can use Injector.createChildInjector:
I don't see why you need that, but if you really want, it's possible: