Joshua,
I don't think EJB 3.0 will decrease the interest in Spring. EJB 3.0 took most of its ideas for simplification from Spring and Hibernate.
Even though I like EJB 3.0, I'm still moving to Spring because:
1) Spring's IoC is much more flexible and easier to use than EJB 3 Dependency Injection.
2) Spring has great API wrappers for
JDBC, JNDI, JMS, Hibernate, and Class Loading.
3) Spring has a good Exception Handling strategy, and EJB/J2EE doesn't.
4) You can't
test Stateless Session Beans outside the container, but you can test Spring Beans outside the container.
5) Spring/Hibernate is enterprise-class because of its support for CMT transactions and connection-pooling.
6) If you need JMS and an asynchronous JMS listener, you still don't need EJBs or a full J2EE container. You can use ActiveMQ as your JMS provider, and Jencks provides Message-Driven POJOs (an MDB substitute).
7) Spring is still simpler to deploy - you only need a WAR. If you have a web app that uses EJBs, then you still need an EAR that contains a WAR and an EJB JAR.
So with Spring, you have all the above benefits and no real drawbacks, plus you can run your code inside or outside the container. For test and production, you could run Spring inside of Tomcat, which has a much lighter weight footprint than a full-blown J2EE application server.
Tom