Spring is another popular context that is used by many Java developers because it simplifies application development by offering capabilities such as dependency injection and aspect-oriented programming (AOP). Spring is a lightweight context, but it doesn't implement the JEE specifications, so it's not a Java enterprise container.
Spring used to be known simply as a context, but the current direction of Spring is, in fact, moving towards being a standalone container, so enterprise applications can be written without having to implement JEE specifications. Spring now offers a Model-view-controller framework, web services, Spring data, batch, Spring integration, and many other capabilities, which collectively make Spring a worthy competitor to JEE. Nevertheless, Spring plays very nicely in JEE containers while simplifying many configuration and deployment tasks.