当前位置: 技术问答>java相关
“因为无状态BEAN在方法调用间不能维护状态,所以从技术上讲,才HOME接口的CREATE()方法不应该有参数”,对吗?????
来源: 互联网 发布时间:2015-04-29
本文导语: 我在很多篇文章上,都有类似: 因为无状态BEAN在方法调用间不能维护状态,所以从技术上讲,才HOME接口的CREATE()方法不应该有参数 这样的话,请问,这是为什么? 为什么无状态的BEAN,CREATE方法就应该没有参数呢? ...
我在很多篇文章上,都有类似:
因为无状态BEAN在方法调用间不能维护状态,所以从技术上讲,才HOME接口的CREATE()方法不应该有参数
这样的话,请问,这是为什么?
为什么无状态的BEAN,CREATE方法就应该没有参数呢?
因为无状态BEAN在方法调用间不能维护状态,所以从技术上讲,才HOME接口的CREATE()方法不应该有参数
这样的话,请问,这是为什么?
为什么无状态的BEAN,CREATE方法就应该没有参数呢?
|
对,StatelessSessionBean的Create方法一般都是无参数的,因为无状态BEAN在方法调用期间是不维护客户的状态的,也就是说无状态BEAN里没有状态变量。客户调用Create方法时并不一定创建该BEAN的实例,可能直接到pool中找一个,假如
pool中没有,容器创建了该BEAN的一个实例,因为无状态BEAN里没有状态变量,所以传来的参数无处保存,注意此时如果客户并没调用它,容器会适时把它放如pool中,根本无法保存客户状态,因此传参是没意义的
pool中没有,容器创建了该BEAN的一个实例,因为无状态BEAN里没有状态变量,所以传来的参数无处保存,注意此时如果客户并没调用它,容器会适时把它放如pool中,根本无法保存客户状态,因此传参是没意义的
|
其实参数是可以有的,只是没什么意义罢了!
StatelessSessionBean是从BEAN POOL中取得,比如有一个BEAN当中有个字段叫a,
你第一次调用把a的值改成了6,但你下次再次掉用BEAN时,里面的a并不一定是6,因为你调用的可能就不是同一个BEAN实例,这就是StatelessSessionBean!
StatelessSessionBean是从BEAN POOL中取得,比如有一个BEAN当中有个字段叫a,
你第一次调用把a的值改成了6,但你下次再次掉用BEAN时,里面的a并不一定是6,因为你调用的可能就不是同一个BEAN实例,这就是StatelessSessionBean!
|
由于StatelessSessionBean不需要保持数据,所以使用StatelessSessionBean可以大大提高应用程序性能。
StatelessSessionBean无需创建特别Bean的实例,所有Client可以共享一个StatelessSessionBean。
譬如,在线发送邮件或者返回数据库中频繁被Client端使用的一组数据等。
具体参考http://java.sun.com/j2ee/tutorial/
StatelessSessionBean无需创建特别Bean的实例,所有Client可以共享一个StatelessSessionBean。
譬如,在线发送邮件或者返回数据库中频繁被Client端使用的一组数据等。
具体参考http://java.sun.com/j2ee/tutorial/
|
create的时候没有参数并不代表你调用它的其它方法时不能传参数,
比如一个计算器,你create一个计算器不用参数,但是你如果要计算1+1=?时,就必须给它的ADD方法两个参数(1,1)。
比如一个计算器,你create一个计算器不用参数,但是你如果要计算1+1=?时,就必须给它的ADD方法两个参数(1,1)。