Java EE 6 VS Spring 3:Java EE杀死了Spring? 没门!

介绍

几天前,我在听Java Spotlight Podcast的第85集 。 在这次演讲中, Bert Ertman和Paul Bakker讨论了从Spring迁移到Java EE的问题。 基本上,在他们的介绍中,他们说,如今,选择Spring而不是Java EE是没有意义的。 我们可以在他们的文章中阅读:

花费了一段时间,但Java EE终于迈出了一步,成为了一种标准,轻量级,合适的解决方案,以应对主流企业应用程序空间中的绝大多数实际开发挑战。 除了选择标准外,您没有任何其他理由。

在过去的几个月中,我看过很多想法相似的博客文章。 有些人赞扬Java EE,这是一件好事,而另一些人则只是贬低Spring。 Arun Gupta 的文章就是这种情况。 我对本文的第一个想法是“ Oracle可能真的很想写这样的巨魔……”。

我根本不是Spring传播者,也不是Java EE讨厌者。 相反,我已经大量使用Java EE 5两年了,很高兴看到Java EE最终成为Spring的优秀竞争对手。 我的目标不是在这里赞美Spring,而只是为了平衡“ Spring的仇恨者”的用语。

标准VS单一供应商解决方案

有标准是件好事吗?

您是否知道这句话“响应按照计划进行的转换”? 是的,这是敏捷规则之一。 有标准当然是好事,有多有余,是根本! 但是它有缺点。 如果有一天您对标准有疑问,而标准却没有涵盖,那么您唯一的解决方案就是填补问题,全力以赴,等待3年……

Spring和标准不兼容吗?

一点也不! 这就是我不理解“这是标准”论点的原因之一。 Spring尽其所能提供标准的使用。 您可以自由使用JPA,CDI注释等。我认为Spring更像是一个集成平台,可以让您使用所有Java EE技术以及Spring本身提供的一些其他功能。

我依赖SpringSource吗? 并不是的…

如果明天SpringSource停止开发Spring,会发生什么? 我将继续使用它……Spring Framework已获得Apache 2.0许可,毫无疑问,社区将接替人们,并且一些新公司将为Spring提供支持。 即使没有人这样做,我对Spring Framework的当前状态感到满意,为什么还要更改? 也许我会在3年后重新考虑它,届时将发布新版本的Java EE…

如果明天我对Spring框架不满意怎么办? 如果我对Java EE不满意,那将是一回事……我不再使用它了……

如果明天我对我的应用服务器不满意怎么办? 如果我对Java EE不满意,那是同样的事情……我改变了……除了使用Spring,我将有更多选择(因为Spring适用于所有Java EE应用程序服务器以及其他诸如Tomcat,Jetty等服务器)。

春天一直是创新的,并将永远是

我永远不会忘记,Spring使Java Web开发的CDI变得容易和容易。 Java EE之后(又三年后…)发布了JSR-299 。

Spring当前还提供了一些JavaEE根本无法提供的出色解决方案:

  • Spring Data(特别适合NoSQL世界)
  • Spring Social(糟糕…… JSR-357最近被拒绝…)
  • Spring手机

其中一些计划在Java EE的下一版本的计划中(是的,我们将在3年后推出!),而另一些仍未被考虑或被拒绝。

整合测试

Java的常见论点之一是,您不必使用模拟程序,由于Arquillian ,您可以进行容器内测试。 我绝对支持容器内测试,而不是模拟测试,并且Arquillian是一个很棒的工具。 无论如何,Arquillian非常适合Java EE,但不是Java EE! 没有标准,因此您只能依靠单一供应商JBoss(redhat),这使得“这是标准”的论点毫无意义。 然后, 用Arquillian测试spring是不是不可能的……至少,即使它不是完美的,Spring的优点还是可以自己提供一些东西……

结论

我没有将我的文章集中在Java EE平台提供的增强上,也没有集中在每种实现的不同功能上,这不是我的目标。 我仍然相信Java EE是一个非常好的产品,并且它最终已经成为一个重要的竞争对手。 但是当我读到“ Spring在当时是革命性的……时,它的确是上一代的框架,甚至有人称它为旧版 ”确实使我感到恼火。 我们怎么说呢? 也许只是发出嗡嗡声……而且有效!

参考: Java EE 6 VS Spring 3:Java EE已经杀死了Spring? 没门! 从我们的JCG合作伙伴 Tibo Delor在InvalidCodeException博客中获得。


翻译自: https://www.javacodegeeks.com/2012/07/java-ee-6-vs-spring-3-java-ee-has.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 n进制小数

n进制小数 将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。例如:若十进制小数为0.795,则输出: 十进制正小数 0.795000 转换成 2 进制数为: 0.11001011 十进制正小数 0.795000 转换成…

状态栏编程(显示系统时间和进度条)

原文地址:http://welkangm.blog.163.com/blog/static/19065851020127941446182/ 显示系统时间 1、 在状态栏中设置两个新的栏位Timer和Progress。首先到ResourceView中编辑String Table,增加IDS_TIMER(时间),PROGRESS(进度)。然后在MainFrame中修改ind…

使用保险柜管理机密

您如何存储秘密? 密码,API密钥,安全令牌和机密数据属于秘密类别。 那是不应该存在的数据。 在容易猜测的位置,不得以纯文本格式提供。 实际上,不得在任何位置以明文形式存储它。 可以使用Spring Cloud Config Server或…

winScp中文乱码设置

打开一个putty窗口(图一),左上角鼠标左键点击,弹出设置界面,选择Change Settings,在图二界面的window->translation,Remote character set选择UTF-8,Apply应用即可。 转载于:https://www.cnblogs.com/ya…

键盘布局的改进之道

原文地址:http://www.cppblog.com/huaxiazhihuo/archive/2013/06/29/201380.html好久没上博客了,自己的那么一点微末道行也不敢拿出来丢人现眼。实际上,过去的几年,真的是让C和MFC害惨了,一直自个儿固步自封&#xff0…

如何将二维数组作为函数的参数传递

如何将二维数组作为函数的参数传递声明:如果你是得道的大侠,这篇文章可能浪费你的时间,如果你坚持要看,我当然感觉很高兴,但是希望你看完了别骂我!如果你发现我这篇文章有错误的话,你可以提出批…

鼠标爱心显示

/**爱心start**/(function(window,document,undefined){var hearts [];window.requestAnimationFrame (function(){return window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.oRequestAnimationFrame ||window…

多台电脑共用一个耳机、音箱

台式机电脑声卡一般有三个插孔,一个是麦克风,一个是耳机,另一个就是LineIn输入口了,买一根AUX线,一头插入笔记本的耳机插口,另一头插入台式机linein口;在控制面板的声音中选择线路输入&#xff…

liferay开发文档_Liferay –简单主题开发

liferay开发文档实际上,Liferay的6.1版本已经走了很长一段路,该版本完全支持JSF和IceFaces。 我一直在努力学习它的绳索,因为我希望使其成为我们团队中的标准协作工具。 好的软件应用程序可以解决问题,但是好的软件应用程序不仅可…

ACRush 楼天城回忆录

利用假期空闲之时,将这几年 GCJ , ACM , TopCoder 参加的一些重要比赛作个回顾。首先是 GCJ2006 的回忆。 Google Code Jam 2006 一波三折: Google Code Jam 2006 是我第一次到美国参加现场的程序设计比赛。 Google Code Jam 2006…

Matlab计时函数

1. cputime 显示Matlab启动后所占用的CPU时间;eg: t0 cputime; 你的程序;timecputime-t0;2. tic,toc 秒表计时,tic是开始,toc是结束;eg: tic; 你的程序;toc;3. clock,etime 前者显示…

列表,字典表达式以及三元表达式

1.三元表达式条件成立时的返回值 if 条件 else 条件不成立时的返回值三元表达式的意义就是让一些简单的if判断写成一行,减少代码量def max2(x,y): if x > y: return x else: return yx10y20res x if x > y else yprint(res)2.列表生成式…

JUnit 5 –条件

最近,我们了解了JUnit的新扩展模型以及它如何使我们能够将自定义行为注入测试引擎。 我向你保证要看情况。 现在就开始吧! 条件允许我们在应该执行或不应该执行测试时定义灵活的标准。 它们的正式名称是“ 条件测试执行” 。 总览 本系列中有关JUnit 5…

我的编程竞赛之路 ——中国大学生计算机编程第一人楼天城访谈

记者/陈秋歌 25岁的楼天城有“中国大学生计算机编程第一人”的称号,也被参加竞赛的学子们敬称为“楼教主”。他的传奇经历一直激励着众多年轻学子:从2001年开始参加计算机编程竞赛,并连获全国一等奖;2004年入选国家集训队&#xf…

MATLAB集合运算

intersect求两个集合的交集ismember检测集合中的元素setdiff求两个集合的差setxor求两个集合交集的非(异或)union求两个集合的并集unique取集合的单值元素注:交并等操作会对操作结果进行排序

IE8兼容性问题的解决方案

前几天,面试到Ie8的一些兼容问题,傻眼了,回想自己做了将近2年的移动端项目,ie兼容似乎没怎么做过。所以私下便开始找找ie兼容的视频或者文章学习,唉,还是不买书了,家里那么多书,都没…

jenkins部署_Jenkins:部署JEE工件

jenkins部署随着持续集成和持续交付的出现 ,我们的构建被分为不同的步骤,以创建部署管道。 这些步骤中的一些步骤可以是例如编译和运行快速测试,运行慢速测试,运行自动验收测试或发布应用程序等。 部署流程的最后步骤意味着将我们…

2013年3月编程语言排行榜:有毒的Java

2013年3月12日,Tiobe公布了新一期编程语言排行榜。Java依旧是占据第一的位置,C语言紧随其后。值得注意的Objective-C持续发力,已经占到了第三的位置。咋一看榜单,前5条中C#下滑最快,从第3名下降到第五名。而其他语言都…

MATLAB各种判断

1. isempty();%判断是否为空2. isnan();%判断是否为NaN3. iscell();%判断是否为元胞数组4. ischar();%判断是否为字符数组5. ismatrix();%判断是否为矩阵6. isrow();%Determine whether input is row vector7. ismember();

js 自定义类Android吐司提示框

(function(){var mouseX 0;var mouseY 0;//定义一个全局toaslist用来存在新建的吐司var toastLsit [];window.Toast function(content,duration,positon){return new Toast(content,duration,positon);}function Toast(content,duration,positon){//显示的内容this.content…