2013-09-29 85 views
37

现在我正在阅读“开始Java EE 7”。我想知道,Java EE 7是一个很好的技术堆栈,它包括CDI,bean验证,Web层的JSF和其他规范。Spring vs Java EE 7

所以我有一个问题:
为什么我应该学习Spring框架,如果存在Java EE 7并涵盖Spring实现的所有功能?

+4

当然,有一件事比另一件事更好,因为你已经抓住了关于它的书* *。 –

回答

30

我将分享一些关于使用Spring的知识。你说得对,Java EE 7有所有的技术来帮助解决问题。

好吧Spring只是增强了这些功能,使开发人员的生活更轻松。

作为使用Spring MVC框架的示例,您可以使用Spring UI标签创建JSP,这些标签又可以帮助您将值直接映射到控制器。通过控制器,我的意思是在你提交表单时调用的Java类。它也可以帮助你验证表单数据。

这也可以通过使用Servlet技术来实现,但Spring允许您专注于业务逻辑并负责处理这些问题。

以我作为开发人员的经验,我很高兴认识并理解Java EE 7,但像Spring这样的框架利用了一些最佳实践和模式,使开发人员的工作更轻松。

希望听到别人的意见。

希望这会有所帮助。

+9

通常我不认为普通的JSP应该再用于呈现UI。如果你使用JSF,就可以像Spring描述与后台对象进行值映射时所描述的一样。例如。当您使用bean验证时,JSF会自动通知您有关验证错误的信息(使用PrimeFaces进行测试。除非明确需要,否则无需处理任何带有控制器的参数)。您还可以使用JSF将实体(JPA)直接映射到UI。看起来JavaEE7可能比Spring更复杂一点,但对我来说,它看起来更强大,最终可能会更方便一些。 –

+1

我认为任何人都支持框架的优点,*可以帮助您在十年前的“面向动作”的框架中编写像JSP这样的框架,真的需要重新分析他们的技术栈。像Wicket,JSF,Tapestry这样的“面向组件”框架非常成熟,并以惊人的方式提高了您的工作效率。我不能为其他人说话,但Wicket以透明的方式处理所有Web 2/AJAX内容(如果你愿意的话),但是如果你喜欢这种方式,仍然可以让你在JS中破解。我发现我很少需要恢复到JS - 或者我喜欢称它为“Web汇编语言” – Volksman

+0

我同意他的例子不好。当我读JSP时,我发抖。但我使用Spring并且有很长一段时间。完全没有理由使用JSP。你可以,如果你想,但你不应该。对于JSF,Velocity,Thymeleaf,Freemarker,Wicket等各种前端框架来说,它们并不会强制你采用任何方式。 –

18

我认为一个人应该知道他们两个。 Spring有一个巨大的社区并且被广泛使用,但Java EE现在也在向前发展,使用Spring最新版本中的许多技术。

但是,说Java EE覆盖了Spring所做的所有字段是不正确的。在我看来,如果你在特定的领域工作,比如移动(Spring移动),社交(Spring社交),导航流管理(Spring Webflow)等等,Spring仍然有一些可以改变的地方。

+0

再一次,不正确。 JEE有许多东西在Spring中不存在,似乎不会在不久的将来。正确的事件机制,视图框架(Spring没有最新的视图技术来整合,也许Thymeleaf)。春季社交可以很容易地被Agorava殴打:http://www.agorava.org/。安全和其他项目也是如此。 请注意,JEE有扩展机制,开发人员不再需要为一家公司控制的项目做出贡献。即使Spring Data现在也可以作为CDI插件使用,但我们有更好的项目名为Apache Deltaspike。 – 2016-11-01 12:32:11