扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
企业级JavaBeans(EJB)是J2EE平台中最复杂的技术之一,因此一些开发人员不愿意在他们的项目中部署EJB。
本文面向那些仍旧对是否投入时间和精力学习并在他们的项目中部署EJB技术持观望态度的开发人员。首先,我们介绍了EJB的优点和缺点,然后,说明了何时你可能需要或不需要使用EJB。
最后通过说明我对EJB错误观念一些看法得出结论。
优点
缺点
什么时候你可能想要使用EJB
假设你有一个使用数据库的简单servlet Web应用。你使用JDBC从你的应用访问数据库。作为一个SQL查询的结果,你会得到拥有一些数据的结果集ResultSet,这些数据代表了你的业务对象。
这种方法使用数据不是很方便。你需要创建一个Java类表示一个数据库结构,你的代码可能如下所示:
MyObjectobj = new MyObject();
obj.setXXX(rs.getString("XXX"));
obj.setYYY(rs.getString("YYY"));
在将结果集换成对象表示与返回后,你需要考虑如何将这个逻辑转移到MyObject中。为了将servlet从JDBC访问细节中分离出来以及不在直接使用java.sql.*包中的类,你应该让该对象可以在数据库中找到自己,然后修改或删除它。
现在又有另外一个问题:如何通过某些查询找到数据库中的一个对象?如果你需要通过主键找到它,那么你需要将主键传给类构造函数即可。如果你需要通过某些准则查找,这将需要很多专用静态方法。如果需要的话,你可能还需要支持事务处理和滚回的方法。
当你的应用程序获得广泛应用时,正常运行时间百分比和可用性将变得十分重要,这时你会需要复制,快速对象持久性,对象高速缓冲区,数据库连接池,安全事务等等。
所有这些问题都可以由实体企业级Java Beans解决。你不会再犯许多程序员已经犯过的错误。如果你的bean是一个容器管理持久性bean,那么你只需要实现一两个接口,而不必考虑必须访问的数据库。如果不能完全满足你的需要,也没有问题,你可以使用Bean 管理持久性(BMP)实体自己实现持久性。
在你的应用程序业务域中,对象不仅保存数据,还有一些行为。这些行为代表业务逻辑。当你开始编写应用时,所有业务逻辑都存放在servlet中,所以你的应用需要一些servlets的支持。
你可以选择是复制粘贴业务逻辑代码,还是将它放在独立的类中。最后,可能有些用户要求在不同的Web页面中与你的应用进行交互,你需要保存每个用户请求之间的会话信息。解决这个问题的方法称为会话Bean,它封装了你的应用中的所有业务逻辑,它可以是有状态的或是无状态的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者