你试过会很快???
我怎么不知道...
通过sessionbean访问entitybean是因为很多其它的原因,应该慢才是 ------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
我怎么不知道...
通过sessionbean访问entitybean是因为很多其它的原因,应该慢才是 ------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
解决方案 »
- java 遍历循环赋值问题(在线等)
- 有没有人有过REST设计经验,求分享,求指导
- 通过hibernate的Session得到conn执行sql的问题。
- 请问前辈们这段代码逻辑哪里有问题
- ejb怎么实现两台机子之间的调用 请教高手!
- 奇怪的问题,高手请进,在线等。。。。。。。。。解决马上给分
- 求bean:page使用方法指点
- 急问:linux 下tomcat启动,不能分配端口,在线等...
- 动态EJB-QL的问题,高手请进来(解决后立即结账,在线等待)
- 关于hibernate的小问题
- 我想在EntityBean中实现类似Sql Server视图的映射,而不是仅仅对应一张表,该怎么做?需要实现什么特别的接口?
- 如何设定容器调度池所容纳的bean的数目
不一定更快,但是可能效率更好!这是一个设计模式的问题!你看过session外观模式吗?它说的很清楚。在session外观模式中:
SessionBean来访问EntityBean:一般SessionBean调用的是EntityBean的本地接口,比servlet通过远程接口调用实体bean要快!
可以将对多个实体bean的调用都写在一个sessionbean中。在客户端,只需要初始化一个sessionbean即可以调用多个实体bean!!
SessionBean来访问EntityBean:一般SessionBean调用的是EntityBean的本地接口,比servlet通过远程接口调用实体bean要快!
可以将对多个实体bean的调用都写在一个sessionbean中。在客户端,只需要初始化一个sessionbean即可以调用多个实体bean!!
这个解释不太对哦,通过servlet调entitybean是remote invocation那么调session bean就不是了么?还不是一样的,这层性能开销是少不了的
----------------------------------------------------------
"通过SessionBean来访问EntityBean"比“Servlet直接访问EntityBean”
不一定更快,但是可能效率更好!这是一个设计模式的问题!你看过session外观模式吗?它说的很清楚。在session外观模式中:
SessionBean来访问EntityBean:一般SessionBean调用的是EntityBean的本地接口,比servlet通过远程接口调用实体bean要快!
可以将对多个实体bean的调用都写在一个sessionbean中。在客户端,只需要初始化一个sessionbean即可以调用多个实体bean!!
1,从设计模式上说直接调用entity bean的确是效率低下,但是并不是调用本身速度慢下来了。
2,无论是entity bean 用remote发布,还是作为local bind发布,事实上都要通过stub-skeleton,可能速度上有差别,但是据很多网友反应,事实上速度差别很不明显甚至是没有,
我曾测试(Jb7+oracle7),也没有看出二者的区别
3,总结大家的观点,我想楼主的问题的答案可能是:直接调用entity bean虽然速度快,但是效率低下,总体表现不如通过session bean 调用。
EJB 的调用使用了远程方法,它的效率一般要远低于本地方法的
调用,这样要读取一个对象,如果使用他的getXX 方法就多次调用了远
程,效率很低,如果一次性读到值对象,这就减少了远程调用。
我们在实际开发中,一般为每个EntityBean 建一个值对象,并且在
entityBean 中的Home 接口中,增加一个create 方法,参数就是值对象. 并
且在接口中增加setData 和getData 方法。在实际开发中,一般为每个EntityBean 建一个值对象,并且在
entityBean 中的Home 接口中,增加一个create 方法,参数就是值对象. 并
且在接口中增加setData 和getData 方法。package factory.manage_orders;import java.io.Serializable;
import java.util.Date;
//值对象
public class OpenOrderView implements Serializable {
public final int salesDivision;
public final int orderNumber;
public final String product;
public final Date dateDue; public OpenOrderView(int salesDivision, int orderNumber,
String product, Date dateDue) {
this.salesDivision = salesDivision;
this.orderNumber = orderNumber;
this.product = product;
this.dateDue = dateDue;
}
}//remote 接口暴露的供客户调用的商务方法,它返回View Object对象的数组;
package factory.manage_orders;import javax.ejb.*;
import java.util.Date;
import java.rmi.RemoteException;
import factory.order.OrderNotCancelableException;public interface ManageOrders extends EJBObject {
void placeOrder(int salesDivision, int orderNumber,
String product, Date dateDue)
throws RemoteException,
NoSuchProductException,
DuplicateOrderException; void cancelOrder(int salesDivision, int orderNumber)
throws RemoteException,
NoSuchOrderException,
OrderNotCancelableException; OpenOrderView[] getSchedulableOrders() throws RemoteException; void createSampleProducts() throws RemoteException; void createProduct(String id, String name) throws RemoteException; void addRoutingInstruction(String id, int sequence, String instruction)
throws RemoteException;
}
jboss也说差不多的..