Давным-давно Spring была де-факто тем, что нужно было использовать, но со временем Spring превратился в довольно тяжеловесного зверя.EJB, с другой стороны, значительно сократился и был значительно упрощен.
То же самое касается JSF, который был значительно улучшен в 2.0.
Эти технологии действительно блестят при совместном использовании в Java EE 6стек, который в настоящее время имеет большой импульс.Полная реализация Java EE 6 (например, GlassFish) занимает всего около 50 МБ, а меньшая ее часть (так называемый веб-профиль) может быть вдвое меньше.Серверы запускаются за считанные секунды.
В настоящий момент я больше не вижу особой необходимости в Spring.Если ваш стек уже установлен на Spring, он, конечно, не требуется для перехода на Java EE, но для новых проектов я бы никогда не выбрал Spring в наши дни.