springdependency-injectioncdijsr299

Whats the relationship between Spring and javax.enterprise.inject?


I was reading a Wikipedia article about Java EE application servers here:

http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Java_EE_5_certified

It says that 2 APIs that Java App Services implement are:

javax.enterprise.inject
javax.enterprise.context

These both relate to application context and dependency injection JSR-299. I had never heard of these APIs before. Does Spring implement these APIs? Would it matter to anyone if they did?


Solution

  • This is the part of JavaEE that is used by spring.

    The same set is used by JSR-299, which is lead by Gavin King from JBoss. However, JSR-299 (also known as CDI) uses javax.enterprise.inejct/context and is a whole new dependency-injection framework. It is based on ideas of spring, guice and seam, but is specified formally as a JSR and aims at covering many corner cases as well as smooth integration with other JavaEE parts.

    JSR-299 defines both an API and SPI so that concrete implementations can be developed. Current implementations are JBoss Weld, Apache OpenWebBeans and Resin CanDI.

    So, to answer your question - there is no direct relation between javax.enterprise.inject and spring.