Я разработчик Java SE, но у меня есть богатый веб-фон (PHP, Perl/CGI и т.д.), и теперь я начинаю новый проект. Он будет иметь веб-интерфейс, бизнес-логику спагетти, реляционную базу данных в качестве хранилища и подключения к другим службам. Я делаю это с нуля.
Мои коллеги сказали мне использовать spring, spring безопасность и распорки. Я кратко расскажу о спецификации Java EE 6 и обнаружил, что он охватывает практически все аспекты корпоративного приложения. Я спросил своих коллег, зачем им нужны spring и struts, но похоже, что они используют технологии просто потому, что они знакомы с ними и не знакомы с классическим стеклом Java EE 6.
Итак, мой вопрос: что плохого в Java EE 6? Зачем мне нужен spring, если есть JNDI-запросы? Потребуется день или два, чтобы создать поддельный InitialContext для модульных тестов. И это все: я стою с внешними инструментами вроде spring. Зачем мне нужна spring -security, если есть защита, встроенная в спецификацию Servlets? Я могу отобразить любой запрос на любой сервлет с помощью web.xml, не требуется struts.xml. Я могу использовать сервлет-фильтры вместо перехватчиков struts. Есть RMI, поэтому мне не нужен spring -remote. И так далее.
Почему я должен беспокоить себя со всем этим причудливым материалом, если есть Java EE 6?
Я действительно хочу найти ситуацию, когда Java EE 6 недостаточно. У вас есть?
Спасибо!