Просто любопытно узнать разницу между spring mvc vs django

Я хотел бы спросить у мастеров, какие основные отличия между java spring mvc и django? а также.., какой из них наиболее предпочтительнее?

Ответ 1

С точки зрения разработки веб-приложений существует только большая разница в подходе к архитектуре ваших приложений.

Django имеет тенденцию налагать множество ограничений и сильно зависит от фиксированного набора решений, которые предоставляются внутри компании. Что вы получаете от этого - соглашения и оптимизированный подход к тому, как вы разрабатываете свои приложения. Большинство рамочных решений работают для всех, а когда нет, у вас есть много возможностей для расширения или повторного использования определенных компонентов по-разному. Это работает так хорошо, что, действительно, как только вы увидели один хороший проект Django, вы все их видели.

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

Ответ 2

У Spring есть собственный веб-фреймворк MVC, но он гораздо больше:

  1. Инъекция зависимости/инверсия управления фабрикой
  2. Аспектно-ориентированное программирование.
  3. Модули для персистентности, удаленного взаимодействия и других функций.

Django - это веб-среда MVC Python для создания CRUD-приложений с интерфейсом браузера.

Я бы сказал, что Grails, подобная Ruby on Rails веб-инфраструктура CRUD для Java, основанная на Spring, Hibernate и Groovy, была бы лучшей аналогией для Django. Оба используют "соглашение о кодировании" для ускорения разработки.