Java EE要死掉了?

VB.NET实战:动态适配Windows深色模式与主题色切换 本文详细介绍了如何在VB.NET中实现Windows深色模式与主题色切换的实战技巧。通过读取注册表设置、调用DWM API以及监听系统事件,开发者可以轻松为Windows Forms应用添加动态主题适配功能,提升用户体验。文章包含完整的代码示例和常见问题解决方案,特别适合需要优化Windows应用界面设计的VB.NET开发者。 阅读详情

最近有人问我说: 欣哥, 我们现在都用Spring, Hibernate, SpringMVC了,这Java EE是不是已经死掉了?

这个问题让我哭笑不得,因为他似乎还没有搞清楚Java EE到底是怎么回事,就给Java EE判了死刑。

Java EE是什么呢? 

简单来讲Java EE 就是一个技术规范的集合,一些核心的技术规范包括:JDBC, Servlet, JSP, JNDI, EJB, RMI, XML , JMS , JTA, JPA,JavaMail 等等。  这些规范的目标很美好, 就是帮助程序员开发大规模的、分布式的、高可用的“企业级”应用, 只是实际的效果可能就没那么美好了。

我们先来看一看这些核心的技术规范都是干嘛的,然后再来评判Java EE是不是快要死掉了。

JDBC : Java程序访问数据库的核心技术,不管是使用Hibernate , MyBatis, EJB, 还是自己写类库, 只要你访问数据库, JDBC是绕不过去的, 我还没见过在Java 中用其他技术读取数据库的案例。

(参见文章:《JDBC的诞生》)

Servlet :   简单地说,Servlet就是Web应用让外界访问的入口。 当然现在直接写Servlet的越来越少, 因为在框架的包装下,应用程序只需要直接写Action 或者 Controller就可以了, 但这并不能否定Servlet的核心和基石地位。

JSP & JSTL: 由于前后端的分离和其他更优秀的替代技术,现在用JSP当做视图层也是凤毛麟角了, 更多的是在遗留系统中在使用,  JSP确实在走向没落。

JSTL 是JSP Standard Tag Library, 一套标准的标签库, JSP不受人待见,JSTL就更不行了。

(扩展阅读: 《JSP:一个装配工的没落》)

EJB : 曾经最为热门的技术, 寄托了大家最美好的期望,但事实证明EJB 1.x 2.x 简直就是灾难, EJB3.x 虽然吸收了Hibernate的很多优秀特性,奈何大家使用轻量级类库和框架的习惯已经养成, 无法翻身了。

更要命的是使用EJB需要昂贵、复杂、笨重的应用服务器(如Weblogic, Websphere等), 这也是使用它的巨大障碍,再加上Spring 这个轻量级框架的崛起, EJB被彻底打入冷宫。

RMI : 远程方法调用, 让Java程序可以像访问本地对象一样来访问远程对象的方法, 早期和EJB搭配用的最多, 因为EJB会被部署在分布式的应用服务器中, 一个机器上的程序需要访问远程的EJB,RMI是个基础的技术。  随着EJB的失宠, RMI似乎也用的很少了。

RMI应该是RPC的一种实现,只能在Java 世界中使用, 相对于被广泛使用的基于Web、 基于HTTP的RPC调用, RMI更不受待见。

(参见文章《我是一个函数》)

JNDI: 这是一个基础性的技术, 可以把名称和对象进行绑定,最常见的就是通过一个名称来访问数据源,而不用关心这个数据源到底在什么地方。 依然在广泛使用。

JAXP: XML在Java 中无处不在,Java EE 通过Java API for XML Processing(JAXP)来读取/解析XML文件,只是这个接口实在是不太好用,学院派气息过浓, 所以现在大家都用民间开源的JDOM,DOM4J 了。

等到JSON开始流行, “悲剧”又重演了,大家都在用民间的fastjson, jackson , 似乎选择性的忘记了 官方的 Java API for JSON Processing。

官方的不如民间的,也是Java世界的一大特色。

JMS:  Java世界访问消息队列的标准方式, 各大消息队列产品都支持, 没有理由不用它。

(扩展阅读《Java帝国之JMS的诞生》)

JavaMail : 在Java中发送邮件,又一个基础性的技术。

JTA: Java Transaction API, 主要是为了在多个数据源之间实现分布式事务, 但是JTA在在高并发和高性能的场景下表现不佳, 很多时候并没有用JTA, 而是用异步的方式来解决问题。

(扩展阅读:《Java帝国之宫廷内斗(上)》 《Java帝国之宫廷内斗(下)》)

除了上面列举的,Java EE还有很多规范

Java API for WebSocket

Java Persistence

Concurrency Utilities for Java EE

Java EE Connector Architecture

Java API for RESTful Web Services (JAX-RS)

Java API for XML-Based RPC (JAX-RPC)

Java Management Extensions (JMX)

JavaBeans Activation Framework (JAF)

......

这些规范在日常的Web开发中可能用的更少,SSH/SSM 中也可以找到对应物, 给大家的感觉就是这Java EE的规范没用了, 要死掉了。

我倒是觉得应该是Websphere , Weblogic这些应用服务器不行了, 从上面的描述中可以看到,活得最滋润的几个是JDBC, Servlet, JMS,  最不如意的就是EJB了,  而EJB恰恰是昂贵的商业应用服务器Weblogic , Websphere 的一个核心功能。

在云计算的环境下, 在容器技术、微服务当道的情况下, 那种集中式的、繁琐的、笨重的部署注定要走向消失。 现在很多后端开发,用Tomcat这种主要支持Servlet/JSP的Web服务器,再配上轻量级的SSH,或者SSM就足够了。

说了这么多,可能有人想到这个问题:  这些规范是怎么制定的的呢?

答案是JCP(Java Community Process), 在这个组织中,一些特定的成员(Full Memeber)如果想把某个技术如JDBC变成Java 规范,就需要发起一个叫做Java Specification Request (JSR) 东西,公开让大家进行评判, 最后由执行委员会投票,决定是否可以发布成为正式规范。

理论上每个人都能够成为JCP的成员, 但是有发言权的, 能上桌玩牌的还是一些巨头,如Oracle, Google, IBM, SAP等等,所以有很多人认为JCP制定出来的Java EE规范只是考虑大厂商的利益, 不顾普罗大众的死活,  这种脱离人民群众的规范是没人用的, 是要死掉的。

这么说确实有一定的道理, 我个人觉得Java EE规范中有一些精华会保留下来,被一直使用,直到Java退出历史舞台。  至于其他的Java EE规范, 就让他们自生自灭去吧。

(完)

你看到的只是冰山一角, 更多精彩文章,请移步《码农翻身2016文章精华》或者《码农翻身2017上半年文章精华》

有心得想和大家分享? 欢迎投稿 ! 我的联系方式:微信:liuxinlehan  QQ: 3340792577


码农翻身

用故事讲述技术

0.jpeg

C# 与 VB.NET 实战:如何在 Word 文档中高效更改字体颜色 本文介绍了如何使用C#和VB.NET通过Microsoft Office Interop库自动化处理Word文档中的字体颜色。内容涵盖两种语言的实现方法,包括基本颜色设置和RGB自定义颜色。文章提供了详细的代码示例,展示了如何更改单段文本颜色以及批量处理多个文档。此外,还介绍了必要的NuGet包安装方法和颜色参数设置技巧,帮助开发者高效实现Word文档的自动化格式处理。 阅读详情

相关推荐

颜色下拉COMBOBOX控件(vb.net)

前不久,有位朋友发帖,寻求颜色选择的COMBOBOX  的制作方法,经过试验,整理了出来,仅供参考。(注:如有引用,请注明出处和作者)                                                                                                                                 --闵峰

闵峰的专栏 4786

【方向盘】认为:开发者已无理由再用Java EE

历史的巨轮,永远滚滚向前。

架构师:通透,才能写出好代码! 1527

用VB.NET打造个性化ListBox控件(图)

ListBox(列表框)也是日常经常使用和遇到的组件,在Visual Basic .Net中使用的ListBox其实是从.Net FrameWork SDK中的ListBox类经过实例化产生的。.Net FrameWork SDK中的ListBox类所创建的ListBox是最典型的,要想使自己的ListBox与众不同就必须编写相应的代码,好在.Net FrameWork SDK中的ListBox类

dyqq12的专栏 1827

JavaEE是什么?学了之后就业前景如何

IT行业整体的就业是很不错的。对于很多不太懂JAVA的人可能对JaveEE这个概念不太了解。本篇文章和大家一块探讨一下什么是JavaEE以及JavaEE就业如何? 一、JavaEE是什么? JavaEE是sun公司推出的企业级应用程序版本。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。 Java编程语言排名世界第一,JavaEE开发者全世界已经超过900万。Java是世界上最流行的计算机编程语言,拥有全球大量的开发者专业社群,其中JavaEE技术也早已经稳居...

jiangweiwudi的博客 2298

vb.net创建自定义颜色下拉列表

Private Sub LB_DtColorsFilter_DrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs) Handles LB_DtColorsFilter.DrawItem         If LB_DtColorsFilter.Items.Count = 0 Then Exit Sub        

RAHAFA的博客 1641

C# /VB.NET 创建、读取PDF文档

生成PDF文档我们通常可以通过文档转换的形式来得到想要的PDF,但我们也可以通过最直接的方式来创建PDF文档,由此本篇文章将介绍C#如何来创建带图、文元素的PDF文档。同理,对于需要读取PDF文档的情况,我们也可以分情况来读取想要的文档元素(文本、图片)。在下面的示例中将做详细介绍。 示例要点梳理: 一、创建PDF文档(可支持中文)1.写入文本(包括页边距、字体、字号等设置)2.绘入图片二、读取P...

weixin_34107739的博客 3805

新版idea创建项目时没有javaEE模块解决方法

新版的idea在创建项目时发现没有javaee模块 解决方法: 使用 Ctrl + Shift +Alt + / 快捷键调出如下界面,然后点击registry 找到并勾选 javaee-legacy.project.wizard 接着回到创建项目的界面,就会发现有Java EE组件出现 ...

stars的博客 2万+

vb.net 与c# 窗体绘制水晶按钮图形

水晶按钮       对于用c#编写一个水晶按钮难度并不是很高,已经有很多人写过晶按钮。如果大家通过baidu or  google. 一定找到很多水晶按钮的网页,而且是很早以前写的啦!把我找到的地址贴一下:这个地址写挺详细:http://dev.yesky.com/msdn/32/2626032.shtmlcnblogs的一个链接http://blog.youkuaiyun.com/lo

jackydream的专栏 3225

章鱼哥—VB.NET 如何实现代码自动生成控件 添加绑定事件

这个问题其实非常简单,我看到网上

zhangyubishoulin的专栏 6471

vb.net ReportViewer开始入门1

最近几天都被这个报表的数据源困扰,希望我写出来后能帮到后面自学的同学。首先,从最基本的开始,新建一个windows窗体项目,在工具箱中拖一个ReportView控件在窗体上,我设置是“在父容器中停靠”,在右上角的小三角上,选择新建报表,打开新建数据集--我用的IDE是vs2010。按正常情况新建一个连接,这个连接以后也不用,所以只要能连上就好,可以不用保存密码,在后面的代码中可以处理的。数据集一定...

山野村夫的博客 3855

CATIA二次开发VBA入门(4)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例

CATIA二次开发VBA入门(3)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例

Arya的博客,专注后端领域 2185

【教程】Excel控件Spire.XLS 教程:在C#,VB.NET中添加Excel边框

Spire.XLS 是一个专业的Excel控件,有 .NET、WPF和Silverlight 版本,通过Spire.XLS无需安装微软Excel,也能拥有Excel的全套功能,本文介绍了如何通过Spire.XLS在C#,VB.NET中添加Excel边框。

cocacola456的博客 2571

VB.NET===HScrollBar的使用示例

Public Class Form1 Private Sub HScrollBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles HScrollBar1.ValueChanged, HScrollBar2.ValueChanged, HScrollBar3.ValueChanged Dim red, green, blue As Long red = HScroll...

weixin_46142047的博客 1618

用VS2017进行移动开发(C#、VB.NET)——OfflineCameraButton控件的属性、使用方式

OfflineCameraButton控件一、          样式一 我们要实现上图中的效果,需要如下的操作:从工具栏上的“Smobiler Components”拖动一个OfflineCameraButton控件到窗体界面上 修改OfflineCameraButton的属性BackColor属性设置控件的背景色,默认设置为“White”,如图1; 图 1BackColorAlpha属性设置控...

Amanda的博客 2539

vb.net 2005 操作WORD中的表格

Dim wordapp As New Word.ApplicationDim worddcmt As Word.Document增加一个新文档wordapp.Documents.Add()激活文档worddcmt = wordapp.ActiveDocument定义一个WORDTABLE对像Dim wordtable As Word.Table当前文档增加一

qzr820的专栏 3751

【网络课】VB.NET程序设计 作业答案

选择题: ACDBC DAADD BDCDD CDCCB ABDCB DBAAC BACAB CCBCD DAAAA ADAAA DCCCA BBCAA ADDBB DDCDA BCAAB BCAAB DCDDC AAADD CDDCC ABBBA 填空题 第02章 1、使对象获得焦点的属性是_SetFocus_

kydkong的博客 5996
上一篇: 纪念我最有效率的一次加班
下一篇: 从兄弟到父子:动态代理在民间是怎么玩的?
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值