Binary package “libguice-java” in ubuntu xenial

lightweight dependency injection framework for Java 5 and above

 Guice provides support for dependency injection using annotations to
 configure Java objects. Dependency injection is a design pattern whose
 core principle is to separate behavior from dependency resolution.
 .
 Guice allows implementation classes to be programmatically bound to
 an interface, then injected into constructors, methods or fields
 using an @Inject annotation. When more than one implementation of
 the same interface is needed, the user can create custom annotations
 that identify an implementation, then use that annotation when
 injecting it.