Почему крупные компании предпочитают Spring через Java EE?

При поиске работы я посетил несколько собеседований на собеседовании в компаниях, работающих в финансовой сфере. Каждая компания использует Spring Framework в качестве основной основы для разработки. И почти везде мне говорили: "Нам нужны проверенные и стабильные технологии, поэтому мы используем Spring".

Я хотел бы знать, как я не понимаю, почему Spring является более популярным и более безопасным, чем Java EE (например, Spring MVC используется больше, чем JSF, а оба обеспечивают почти такая же функциональность)?

Как возможно, что родные функциональные возможности Java EE менее стабильны, чем сторонние библиотеки?

Ответы

Ответ 1

Некоторые причины:

  • Spring был уже там: J2EE был уродлив (нет инъекции зависимостей, никакого преобразования по конфигурации и большого количества страхов от EJB2, ouch). Java EE "украла" все хорошие идеи из Spring, и на самом деле она легче и проще, чем предыдущие версии. Но теперь все уже используют Spring. Это означает много производственного кода, много хорошо протестированных продуктов и так далее. В конце концов, почему люди в Великобритании/США используют английские единицы? (Существует огромная стоимость изменения)

  • Spring легче: вам не нужен тяжелый сервер приложений Java EE, вы можете развернуть свое приложение в веб-контейнере, таком как Tomcat.

  • Spring предлагает массу функций, которые недоступны в качестве стандартов Java EE, например Spring Batch или Spring Integration. Вы можете использовать функции Spring со стандартами Java EE, но следует полагать, что Spring работает лучше с Spring, не так ли?

  • Spring Аспектно-ориентированное программирование является более гибким и мощным, чем Java EE-перехватчики. Вы можете использовать сторонний AOP с Java EE, но вы можете получить это из коробки из Spring.

  • Spring перемещается быстрее. Spring может выпускаться часто и быстрее, потому что это не стандарт и только один поставщик. Таким образом, не требуются бюллетени JCP, утверждения и т.д. Реакция на требования рынка намного быстрее. Некоторые текущие примеры: облачные, мобильные, социальные вычисления.

По иронии судьбы, я "получил" много идей от: http://www.kai-waehner.de/blog/2011/11/21/why-i-will-use-java-ee-jee-and-not-j2ee-instead-of-spring-in-new-enterprise-java-projects-in-2012/

Ответ 2

Одна вещь, которая делает Spring привлекательной для разработчиков, особенно в крупных организациях, таких как финансовые компании, заключается в том, что она позволяет им более эффективно контролировать свое промежуточное ПО. С чистой Java EE разработчики находятся во власти операционной группы, которая имеет совершенно разные цели, чем они есть. Во многих случаях операции хотят избежать беспорядка с чем-либо, что работает, каждый апгрейд - это шанс, что все пойдет не так, и это не похоже на то, что они видят преимущества от обновлений, поэтому их выбор очень консервативен. Это может означать, что разработчики застряли в устаревших версиях сервера приложений, и если возникнет проблема, разработчики должны работать с технической поддержкой поставщика (так что вам нужно убедить поставщика, что у вас есть проблема, и воспроизвести его в условиях, которые они задают), затем координируется с операциями по реализации исправления (что, конечно же, означает обоснование вашего запроса организации с разными приоритетами от вас). Разработчикам нравится как можно меньше сводить к минимуму такие вещи.

Наличие Spring в приложении дает разработчикам больше свободы обновлять больше своей инфраструктуры по своему расписанию.

Ответ 3

При поиске работы я посетил несколько собеседований на собеседовании компаний, работающих в финансовой сфере. Каждая компания использует SpringРамки в качестве основной основы для развития. И почти везде я было сказано: "Нам нужны проверенные и стабильные технологии, поэтому мы используем Spring.

Я работаю в финансовой сфере с нескольких лет, поэтому я могу говорить по своему опыту.

Многие поставщики финансовых услуг, которых я знаю, имели серьезное обновление до своего корпоративного стека программного обеспечения примерно в 2006-2008 годах, когда разочарование в отношении EJB было на пике после нескольких недостижимых и плохо написанных проектов EJB. Поэтому, чтобы модернизировать свою систему, а также привлечь разработчиков, они начали реинвестировать свои продукты в Spring и Hibernate, а также было логичным шагом для запуска новых проектов в современных средах (которые в то время были Spring, Hibernate и Wicket)

Но с тех пор начался финансовый кризис, и не многие компании, занимающиеся финансовыми услугами, думают о том, что вкладывают столько денег в новое развитие, если это не очень важно. Большинство из них не заботятся о том, была ли запущена Java EE 6 или 7, а некоторые старые аргументы больше не выдерживают.

Поэтому они хотели бы поверить, что у них есть безопаснее, быстрее и т.д. (что может быть или не быть правдой)