JavaEE与Spring之间的关系,到底该如何理解?Java EE与Spring我都使⽤过,⽽且使⽤的时间都⽐较久。其实,EJB在国内还没开始⼤流⾏就
退出舞台了,⽬前还知道EJB并使⽤过EJB的程序员⼤部分都是70后或者80初那批⽼程序员
了,当年我在使⽤EJB的时候,还很年轻。
早在2004年的时候我就在⼩型机上部署EJB,使⽤EJB开发了⼀系列应⽤,⼤部分都是⼤⽤户
并发的使⽤场景。可以说我对EJB不仅仅熟悉,也有⼀定的感情,当年就是因为我熟悉EJB⽽获
得了很多机会,这对于⼀名年轻的研发⼈员来说是⾮常重要的。
EJB的特点是复杂,EJB分为会话Bean、实体Bean和消息驱动Bean,在早期这种设置⽅式有效
解决了很多异质异构问题,包括事务处理问题,但是却埋下了复杂的种⼦,导致整体EJB解决⽅
案过重。
Spring与EJB解决的是同⼀个问题,就是性能优化问题。Spring与EJB⼀样都是通过“池化”的⽅
式来完成单对象的共享使⽤问题,不过Spring并没有像EJB那样划分众多的Bean类型,⽽是采spring到底是干啥的
⽤了统⼀的实现⽅式。
Spring之所以“轻”体现在两个⽅⾯,⼀⽅⾯Spring的代码轻,⼀⽅⾯Spring的架包轻。Spring更
模块化⼀些,⽽EJB则是整体解决⽅案,所以EJB整体偏重。由于EJB代码复杂,部署复杂,且
对硬件要求较⾼,所以在Spring推出以后,EJB逐渐被边缘化了(即使是官⽅标准)。
所以,简单的说EJB和Spring是实现企业级业务处理的两种解决⽅案,EJB是重量级解决⽅
案,Spring是轻量级解决⽅案。
我的研究⽅向是⼤数据和⼈⼯智能,我在头条上陆续写了⼀些关于⼤数据的科普⽂章,感兴趣的朋友可以关注我的头条号,相信⼀定会有所收获。
如果有软件开发⽅⾯的问题,或者是考研⽅⾯的问题,都可以咨询我。
谢谢!