- No support for complex types such as lists and maps
- No support for configuration properties (Strings, ints etc.)
- No ability to apply custom interception to managed objects
- It's Java 5.0 only
- DI won't work with existing classes because it needs custom annotations
Some simple applications might get by with this limited form of DI; however, using Spring or another lightweight container will still look compelling even behind an EJB 3.0 facade--for those people who choose to use EJB. Once you embrace DI, it's a bit odd to say "this far and no farther. DI is good for objects coming from JNDI but no more."
Furthermore, the EJB 3.0 spec is likely to be final in early 2006. There are many gaps in the Early Release Draft.
So it's good to see the EJB spec being influenced by lightweight containers, but EJB 3.0 isn't going to remove the need for them.