Насколько я знаю, правильнее все-таки, не «свободной альтернативы», а легковесной альтернативы — ибо существуют свободные реализации EJB, и Spring не в их числе. Поддержка Java EE 6 в Spring не означает реализацию стандартов EJB, а наоборот — Spring может запускаться в том числе и в существующих EJB-контейнерах.
Не совсем так насчет поддержки Java EE6, в spring отказались(отказываются) от многих самописных анотаций в пользу анотаций из пакета javax.
И часть стандартов они таки реализовали
Struts — это MVC каркас для разработки web-приложений.
Spring — это прежде всего IOC библиотека с сопутствующими технологиями SpringMVC, SpringSecurity(Acegi), Spring WebFlow, Spring Web Services и т.д. Полный список найдёте на www.springsource.org/.
Никто не запрещает использовать Struts совместно со Spring.
А вообще обновляться серьезно рановато.
Спринг-секьюрити 3.0 еще не готов.
Спринг-конфиг из которого половина переехала в спринг3, тоже в стадии майлстоун.
Есть ли DI-фреймворк для жавы, в котором бы не было ни кучи XML-конфигов, ни размазанных по всему коду аннотаций? С возможностями простого повторного использования конфигурации, а так же отслеживанием изменений в класспассе и интергацией с билд-системами.
Релиз открытого Java-фреймворка Spring 3.0