I have some comments:
- EJB 3.0 is a specification so depending on which EJB container you use you may get diffrent results(performance for example)
- EJB 3.0 is at its start, but Spring is a proven framework for enterprise applications
- EJB is a component specification for both business and persistence layers, Spring is a framework for all layers(It doesn't suggest you what type of component you use for persistency for exp.).
- The old problem of EJB is that you need to stick to a container that you need to start & stop it during the development time.
- You can use EJB 3.0 with Spring, There is no conflict!
I suggets you to use Spring, and then look if you need EJB or not(Would EJB bring you some thing that Spring can't support? Do you realy need to implement standard components?(Anyway I think Spring is a defacto standard now)).
You need to consider your application server too. How is the quality of your App. server? Does it for example support hot deployment? How scalable is it?
I hope these comments help you, As I said there is no conflict between EJB 3.0 and Spring. There are some concepts that are both in java EE 5.0 and Spring like dependency injection. Maybe more correct to compare java EE 5.0 with Spring!
Consider what are your technical requirements and then check which solutions are better for you.