日期:2014-05-20  浏览次数:20765 次

J2EE的困惑
现在J2EE技术是不是侧重WEB开发,我看在论坛里谈到的差不多都是JSP,SERVERLET,SSH方面的,怎么都没看到EJB方面的,是不是EJB面临淘汰,还是它比较高深的技术,一般的都不要用到他

------解决方案--------------------
当然不会淘汰,搞EJB的大多是工资相对较高,技术相对较牛。只是使用EJB来架构系统成本高,难度大,打个比喻:你去你邻居家要不要坐飞机去。
------解决方案--------------------
是使用EJB来架构系统成本高,难度大,打个比喻:你去你邻居家要不要坐飞机去
------解决方案--------------------
是这样的,一般企业用不到EJB,或者是不喜欢用EJB,能用到的人都有点水平,然后...他们不上CSDN
------解决方案--------------------
为什么使用EJB我原先认为这不是一个讨论的话题,因为EJB是J2EE重要的组成部分,可以说没有EJB的J2EE只是一种Web系统,这样的系统非常容易丧失了多层结构的大部分优点.
Web完全只是一个MVC模式的实现,关键业务核心是在EJB的服务层实现,这样做的优点是,Web只负责界面相关部分,因为,如果是一个智能客户端,如Swing或J2ME,在不需要修改任何业务核心的情况下能够方便地更换。同样,提供Web Services功能,也只是在 Web层修改,不会涉及EJB方面的修改,同样保证了系统的稳定性,保证了系统升级和未来的扩展性。
最主要的是性能问题,由于以前国内中文Java网站有些人弯曲EJB,认为EJB性能低,其实这是一种非常肤浅错误的认识,我们首先看看在一般Java环境中是如何提高性能。

  假定一个JavaBeans为A,那么一般使用这个JavaBeans命令如下:

  A a = new A();

  但是,在高访问量的环境中,new A()其实是很费时消耗系统性能的,因此,能不能在软件系统启动时候就预先建立一些对象,这样,系统运行时,从这些已经生成的对象池中借用一个,这样,就无需在使用时进行New,节约了开销,提高了性能,因此,真正成熟性能解决方案都是需要对象池等支持。

  在一个纯Web结构的系统(也就是只能运行在Tomat环境中),例如Struts + Hibernate等这样的系统,除非自己动手做,一般是没有对象池技术支持的,因此他们的性能只能算是Demo演示版本的性能,根本无法承受大容量并发访问,也无法称为一个成熟的系统,所以,我们研究成熟的开源Web系统,如Jive、OFBize,LifeRay等,他们都在Web层拥有自己的对象池和缓存池。
对象池和缓存机制是J2EE必须的吗?当然,是所有成熟系统必须的,Windows系统如果去掉缓存将会变得怎样?

  自己动手开发对象池和缓存机制并不是一件简单的事情,需要对多线程以及同步锁等底层原理有深层次的把握,这其实也是一门非常深入的Java研究分支,所以,你可以抛开你的客户焦急的催促,精心研究开发自己的对象池和缓存池。

  但是,EJB容器(如JBoss)已经提供了对象池和缓存机制,所以,没有事务机制的无状态Session Bean的性能肯定要强于普通JavaBeans。EJB容器不但在单机中提供了对象池和缓存,而且可以跨服务器实现动态负载平衡,这些都无需开发者自己开发任何软件代码.


所以如果你们的项目够大你就可以领略到ejb的优点!


------解决方案--------------------
JAVA WEB只是 J2EE得一小部分
经典得J2EE结构是以EJB为架构的,SSH是轻量级得J2EE架构(现在非常火,也非常好用)
J2EE再电子商务领域应用很火爆,听前辈说过,工行、建行得网上系统就是基于J2EE的
J2EE着重用企业级开发.... JSP只不过是呈现层得东西、就是用于页面显示的
SSH个人感觉一定要学,太经典了 不学都对不起JAVA了
至于 EJB毕竟是重量级的 ,做一般得项目进一个一般得公司 一般肯定用不了

PS:眼光千万不要只放在网站开发上