也谈EJB和spring

来源:互联网 发布:陈奕迅 孙楠 知乎 编辑:程序博客网 时间:2024/04/29 07:45

     EJB作为 J2EE 规范种的一个重要内容,有着很重要的作用。那EJB到底在J2EE中有着什么样的作用呢?

我认为 EJB应该看做是使用J2EE资源的一种途径。包括事物,JMS,JNDI等等。那么也就意味着不使用EJB也可以

使用J2EE规范。毕竟作为JAVA企业级应用来说J2EE规范还是很重要的。我们不抛弃J2EE规范,而是采用另外一个

途径,一个道路去实现J2EE规范.SPRING则是一条很好的,被大量项目证实的道路。

   通常我们老是说很多 EJB的不好?SPRING很好?那么到底不好在哪里?我们做个比较

  1.开发效率

      对一个框架来说最重要的是什么呢?开发效率!! EJB依赖于容器,很难做单元测试。如果用用过EJB2.0开发的人

肯定会体会到。你一天大部分的时间不是在写code,而是在起应用服务器。而spring则能够不依赖于具体的应用服务器。可以

在aplliction的情况下,进行单元测试。以后你不用一直被测试抱怨你的代码质量差,修改bug时间慢了,想想这有多么美妙

 

  2.性能

      entity bean一直被大家所排斥,差劲的性能表现,复杂的配置。EJB做了一件本不是它擅长做的事情,实际可以更多地

把持久化层级的东西,交给更加更多专业的人员来做,比如hibernate,ibatis等等。

        远程接口,EJB设计的初衷是考虑分布式,大家可以看看采用EJB的架构图,从理论看那是多么美妙多个业务层部署点

 和web层分离,根据业务需要可以无限扩张。但是在实际应用中除了金融等领域,又有多少地方是要分布式的呢?WEB层次和业务层次在逻辑分离是很对的,但是并没有必要在物理上分离。将web层和业务层部署在一台机器上,也可以实现业务需要的横向扩展。比如国内很多企业就是这样实现的象aibaba等,并且实现的很好。所以大家一定要记住你需要什么,而不是一直被良好的乌托邦的架构左右。

 

 我们该做什么,采用spring很好,易于测试,但是大家要记得你采用sping的原因,而不是跟着大家潮流。而不是用着spring,仍然用着EJB的开发方式,那么你为什么要用spring!