<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
public class ExampleClass {
@Inject
private ExampleDependency exampleDependency;
}
public class DependencyInjector {
private static final Injector injector = createInjector();
private static Injector createInjector() {
return Guice.createInjector(new ExampleDependencyModule());
}
public static void injectMembers(Object instance) {
injector.injectMembers(instance);
}
}
public class ExampleDependencyModule extends AbstractModule {
@Override
protected void configure() {
bind(ExampleDependency.class).to(ExampleDependencyImpl.class);
}
}
public class LibraryMain {
public static void main(String[] args) {
ExampleClass exampleClass = new ExampleClass();
DependencyInjector.injectMembers(exampleClass);
}
}