Unfortunately, that can be an extremely long answer to show you all the benefits that Spring gives you in any project, J2EE or not.
But in quick terms of J2EE, it simplifies your development to just writing Plain
Java Objects in which all the enterprise services you need are set up through configuration, either xml or Annotations.
You really have to try Spring out and learn it to truly see all the great things that Spring saves you with.
For your #2, I never write an application without Spring anymore, unless it is just a small Groovy command line script I create.
for #3, there is another dependency injection container from Google called Guice.
Mark