Я взял на себя веб-приложение Struts 2 + Guice, которое использовало плагин REST для согласования конфигурации.Сначала было очень легко работать, но я столкнулся с парой препятствий, которые было либо трудно, либо невозможно преодолеть.
Одним из них было то, что мне нужно было иметь внутренние символы точки / точки в пути URI, и Struts 2 + REST не позволил это, поскольку он интерпретировал бы точку, чтобы указать расширение файла, и попыталсяМаршалл к соответствующему представлению (например, как перехват .xml и .json).
Так что я закончил переписывать веб-приложение в Spring 3 и смог исправить все те проблемы, с которыми я не мог справиться в Struts 2. Я был намного счастливее с Spring 3 и нашел, что он так же быстро кодируетв Struts 2. Я как можно больше придерживался конфигурации на основе аннотаций и пытался по возможности использовать версии JSR (330 @Inject и 303 @Valid и т. д.), чтобы, если я решу избавиться от Spring I,я не застрял с пользовательскими аннотациями Spring.
Мой голос - Spring 3.