Это действительно зависит от приложения, которое вы разрабатываете.
JavaEE 6 действительно прост в использовании и предоставляет простые решения для большинства проблем простого приложения. CDI имеет область диалога, его механизм внедрения зависимостей очень мощный, и он очень хорошо интегрируется с JSF. EJB отлично подходит для настойчивости и управления транзакциями.
Ситуация становится немного уродливой, когда вам приходится иметь дело с некоторыми другими API, такими как JTA, JMS, JavaMail и т. Д. Именно тогда Spring может оказать большую помощь. Он имеет библиотеки для работы с большинством этих технологий и многими другими (Freemarker, Velocity, JasperReports, Quartz и т. Д.). Следует отметить, что вам не нужен DI-контейнер Spring для использования большинства этих библиотек интеграции. Наконец, Spring AOP великолепен, гораздо более гибок, чем любая из альтернатив JavaEE (но, опять же, JavaEE AOP отлично работает в большинстве случаев).
Как уже было сказано, это зависит от проблемы, которую вы пытаетесь решить. Оба являются отличными платформами для разработки приложений. В Интернете много информации по теме JavaEE 6 и Spring . Проведите небольшое исследование и счастливого кодирования!