javadependency-injectionguicejsr330

Guice and JSR-330


JSR-330 specifies certain naming conventions in terms of packages, for example:

javax.inject.Inject
javax.inject.Scope

Guice is the Reference Implementation of JSR-330. However, when using it, you notice that it doesn't follow the spec. For example:

com.google.inject.Inject
com.google.inject.Scope

This doesn't happen in any of the reference implementations I have seen so far. What makes Google Guice so special that being the RI they can just ignore the specification they are implementing?


Solution

  • Guice 3 supports JSR 330 annotations. It also supports the com.google annotations for backwards compatibility with earlier versions of Guice (when JSR 330 didn't exist yet).