为什么我从Spring转向JavaEE?

来源:互联网 发布:剑灵龙男大叔捏脸数据 编辑:程序博客网 时间:2024/04/29 22:41

就在最近,在我在基辅共和国基督教基金会的一次会议之后,我被一位与会者询问了我使用Java EE的原因。在会上,我提到过去,我也是Spring的深度用户。 实际上,我一直喜欢Spring中的编程,而且我喜欢使用注释的声明式编程模型,而且技术发展非常快。

我在现实世界的项目中使用了Spring 4版本,而且我们总是尝试使用最新的方法,比如@RestControllers或者基于Java的配置。 除了Spring提供了很好的开发经验,我也不喜欢几件事情:

  1. 需要很多配置(XML,然后是基于Java的配置,数据库设置/事务管理器),必须经常更改。
  2. 更长的构建时间(实施在部署工件中发货) - 我们大多在Servlet容器上部署了一场胖战。
  3. 在更新版本时,并不总是向后兼容(或与其他具有不同生命周期的Spring组件(如Spring Security)完全兼容)。

除了Spring之外,我还使用了大量的Java EE,具体取决于项目。

我特别喜欢Java EE是由CDI提供的强大的依赖注入,以及EE框架内的技术可以立即使用的事实,如Bean验证和CDI。

那个和微型war包的快速构建,使我认为Java EE是越来越多情况下的有利选择。

真正让我感到兴奋的是Java EE 7可以与Java 8一起使用而没有任何其他(技术上推理的)依赖性。随着会议配置和简单匹配 - 您喜欢的方法,它提供了一个高效的,我认为,真正愉快的开发人员体验。

所以,截至今天,我赞成Java EE作为企业框架的主要原因 - 它始终取决于项目和用例

  1. 不间断地使用不同的规格。
  2. 零到最小配置,约定配置方法。
  3. CDI强大灵活的编程模式。
  4. 将业务代码与框架实现分离(另见博客文章)。
  5. 很短的构建,传输和部署时间是可能的。
  6. 向后兼容(对于长期的企业项目来说,这是特别有趣的),更新版本时并不意外。

结论 :

一如以往,技术的选择取决于您要实现的目标,以及您和您的同事对该技术的熟悉程度。问题不在于A比B好还是坏,而是强项和弱点是什么,何时应用它们。 无论是使用Spring还是Java EE,一般来说,建议您使用纯粹的技术栈,千万不要混合在一起。在我看来,在EE应用程序服务器上部署Spring或在Spring技术栈中使用Java EE特定技术并不是很有意义,Spring 技术栈已分别由另一个Spring特定的组件覆盖

注:作者是Sebastian Daschner是一名Java自由职业者,担任顾问/软件开发人员/架构师,热衷于编程和Java(EE)。他是一个JCP成员,参与JSR流程,并对Github上的各种开源项目进行黑客攻击。他一直在与Java合作超过5年。除了Java,Sebastian也是Linux和Docker这样的容器技术的重要用户。他通过https://blog.sebastian-daschner.com和Twitter通过@DaschnerS传播计算机科学实践。

原创粉丝点击