Я хотел бы спросить у мастеров, какие основные отличия между java spring mvc и django? а также.., какой из них наиболее предпочтительнее?
Просто любопытно узнать разницу между spring mvc vs django
Ответ 1
С точки зрения разработки веб-приложений существует только большая разница в подходе к архитектуре ваших приложений.
Django имеет тенденцию налагать множество ограничений и сильно зависит от фиксированного набора решений, которые предоставляются внутри компании. Что вы получаете от этого - соглашения и оптимизированный подход к тому, как вы разрабатываете свои приложения. Большинство рамочных решений работают для всех, а когда нет, у вас есть много возможностей для расширения или повторного использования определенных компонентов по-разному. Это работает так хорошо, что, действительно, как только вы увидели один хороший проект Django, вы все их видели.
Spring, с другой стороны, имеет тенденцию налагать как можно меньше ограничений. Помимо удовлетворения требований платформы Java EE, вы свободны в значительной степени подключать свое приложение так, как считаете нужным. Компоненты, которые вы пишете для обеспечения фактического поведения, должны быть так же слабо привязаны к самой структуре, и вы просто закончите использование определенных компонентов, предоставляемых Spring, чтобы управлять тем, как они обнаруживаются, подключаются, управляются и потребляются. Проблема в том, что вы можете настроить даже самый малый аспект приложения, а это означает, что вы принимаете множество решений, и каждое веб-приложение Spring будет уникальным.
Ответ 2
У Spring есть собственный веб-фреймворк MVC, но он гораздо больше:
- Инъекция зависимости/инверсия управления фабрикой
- Аспектно-ориентированное программирование.
- Модули для персистентности, удаленного взаимодействия и других функций.
Django - это веб-среда MVC Python для создания CRUD-приложений с интерфейсом браузера.
Я бы сказал, что Grails, подобная Ruby on Rails веб-инфраструктура CRUD для Java, основанная на Spring, Hibernate и Groovy, была бы лучшей аналогией для Django. Оба используют "соглашение о кодировании" для ускорения разработки.