Apache Commons Inject is an implementation of JSR 330: Dependency Injection for Java. In other words: It is yet another implementation of JSR 330, much like Guice, Spring, Dagger, and some minor others.
Commons Inject mimicks Guice in most aspects. (For example, if you know the Guice API, you will immediately understand the API of Commons Inject.) However, compared to Guice, you will hopefully note the following differences:
@Inject private List someList; @Inject private List<Foo> fooList;
However, that distinction isn't part of JSR 330, anyways. Instead it is suggested that you use the concept of names:
@Inject private List someList; @Inject @Named(value="foo") private List<Foo> fooList;