只是想知道spring mvc vs django之间的区别

Mav*_*ick 22 python java django model-view-controller spring-mvc

我想问一下大师那里的java spring mvc和django之间的主要区别是什么?还有......最喜欢哪一个?

Fil*_*vić 29

从开发Web应用程序的角度来看,应用程序架构的方法只有很大的不同.

Django倾向于施加很多约束,并且在很大程度上依赖于内部提供的一组固定解决方案.您从中获得的是常规和简化的方法来开发应用程序.大多数框架解决方案适用于所有人,当他们不工作时,您有很多机会以不同方式扩展或重用某些组件.这很好,真的,一旦你看到一个很好的Django项目,你已经看到了所有这些.

另一方面,Spring往往会施加尽可能少的约束.除了满足Java EE平台要求之外,您还可以以您认为合适的方式为您的应用程序提供相当多的连接.您编写的用于提供实际行为的组件旨在与框架本身松散相关,您最终将使用Spring提供的某些组件来管理它们的发现,连接,管理和使用方式.问题是你可以自由地定制应用程序的最微小的方面,这意味着你将做出很多决定,每个Spring Web应用程序都将是独特的设计.

  • Django倾向于施加很多约束,并且在很大程度上依赖于内部提供的一组固定解决方案< - 它并不强制您使用它,但如果您需要它,它就会存在.你可以在python中编写自己喜欢的解决方案.编写框架的语言也有很大的影响.此外,并非每个django项目都相同.我认为你的评论是非常主观的,听起来你使用Spring并且除了你所阅读的内容之外还没有探讨过Django. (2认同)
  • 是的,我确实这么说是因为 Django 是一个由相互关联的组件组成的整体框架,这些组件具有紧密的内聚性,并为发现和与应用程序源的交互强加了许多约定,这与 Spring、Spring MVC 相关。在您引述之后的内容中,我说这是一件已被证明行之有效的好事,并概述了您有很多机会干预和修改现有行为。 (2认同)
  • 你可以在python中做的任何东西都可以集成到django中,它根本没有紧密耦合/限制...... Django倾向于施加很多约束,并且在很大程度上依赖于内部提供的一组固定解决方案.< - 这条线完全错误. (2认同)
  • 我喜欢直接说出自己的看法,而不是用抽象的混淆性用语说话。在构建Web应用程序时,Django使用特定于文件的命名约定,例如app1 / models.py或app1 / views.py。Django的配置文件也是python语法。SpringMVC没有太多的文件命名约定,SpringMVC使用大量的XML魔术来将各个部分缝合在一起。尝试研究每种框架如何支持WebSocket,您将发现Java的更精细的构造和过程具有优势。 (2认同)

duf*_*ymo 9

Spring有自己的web MVC框架,但它更多:

  1. 控制工厂的依赖注入/反转
  2. 面向方面编程.
  3. 用于持久性,远程处理和其他功能的模块.

Django是一个Python Web MVC框架,用于创建更流畅的UI CRUD应用程序.

我会说Grails是一个基于Spring,Hibernate和Groovy的类似Ruby的Rails类Web爬虫框架,对于Django来说是一个更好的类比.两者都使用"约定优于编码"来加速发展.

  • Django的生产力更高,请参见此处:http://www.quora.com/Python-and-Django-over-Java-Spring-who-made-the-switch-to-Python-Productivity-gains (2认同)