EJB3.0开发有状态会话bean
2010-03-23 12:08
323 查看
EJB3.0开发有状态的会话bean,步骤与无状态会话bean类似,只需要在无状态会话bean中把@Stateless改成@Stateful
ejb类代码如下
虽然无状态会话bean与有状态会话bean开发过程很相似,但是它们采用对bean管理技术是不一样的。
无状态bean使用实例池技术管理bean
在实例池中的对象可以被多个用户共享,与数据源连接池技术是一样的,数据源里面的连接是可以被很多用户所共享的,当一个用户使用连接的时候,其他用户是不能使用该连接的,只有当这个用户使用完这个连接之后,这个连接回到了连接池里面,后面的用户才能使用这个连接,通过这个连接池技术可以减少数据连接对象的数量,提高系统的性能,无状态bean使用了实例池技术,当一个用户使用对象时候,其他用户是不能使用该对象的,只有这个用户使用完后,对象回到实例池中,其他用户才能使用该对象,所以会减少使用对象的数量来提高系统的性能,显然无状态bean的性能比有状态bean的性能更高。无状态bean是使用最少的对象数为用户服务。
有状态bean使用激活(activation)管理bean
[b]
有状态bean要为每个用户创建一个bean实例,并且需要在一段时间内缓存该bean,然而在一个大型企业应用中,用户是很多的,所以就有很多对象被缓存起来,增大内存的消耗,影响到系统的性能,然而在实际中,每个用户并不会频繁地访问这些对象,所以可以对这种情况进行优化,使用激活技术进行优化,当这个bean在一段时间内不再使用的时候,EJB容器会把有状态bean实例的会话信息序列化到本地磁盘,把这个bean所占用的内存资源释放掉,如果在这个总的缓存时间之内,用户又发起请求,EJB容器会把本地磁盘上的会话信息还原到内存中,为用户服务,如果在这个总的缓存时间之内没有用户访问,EJB容器会把本地磁盘上的会话信息给清除掉,这时,访问bean实例,就会得到超时异常信息。
[/b]
ejb类代码如下
package wang.ejb3.impl; import javax.ejb.EJB; import javax.ejb.Remote; import javax.ejb.Local; import javax.ejb.Stateful; import wang.ejb3.HelloWorld; import wang.ejb3.HelloWorldLocal; @Stateful @Remote(HelloWorld.class) @Local(HelloWorldLocal.class) public class HelloWorldBean implements HelloWorld, HelloWorldLocal { public String sayHello(String name) { return name + "说:你好,世界"; } }有状态会话bean开发完成。
虽然无状态会话bean与有状态会话bean开发过程很相似,但是它们采用对bean管理技术是不一样的。
无状态bean使用实例池技术管理bean
在实例池中的对象可以被多个用户共享,与数据源连接池技术是一样的,数据源里面的连接是可以被很多用户所共享的,当一个用户使用连接的时候,其他用户是不能使用该连接的,只有当这个用户使用完这个连接之后,这个连接回到了连接池里面,后面的用户才能使用这个连接,通过这个连接池技术可以减少数据连接对象的数量,提高系统的性能,无状态bean使用了实例池技术,当一个用户使用对象时候,其他用户是不能使用该对象的,只有这个用户使用完后,对象回到实例池中,其他用户才能使用该对象,所以会减少使用对象的数量来提高系统的性能,显然无状态bean的性能比有状态bean的性能更高。无状态bean是使用最少的对象数为用户服务。
有状态bean使用激活(activation)管理bean
[b]
有状态bean要为每个用户创建一个bean实例,并且需要在一段时间内缓存该bean,然而在一个大型企业应用中,用户是很多的,所以就有很多对象被缓存起来,增大内存的消耗,影响到系统的性能,然而在实际中,每个用户并不会频繁地访问这些对象,所以可以对这种情况进行优化,使用激活技术进行优化,当这个bean在一段时间内不再使用的时候,EJB容器会把有状态bean实例的会话信息序列化到本地磁盘,把这个bean所占用的内存资源释放掉,如果在这个总的缓存时间之内,用户又发起请求,EJB容器会把本地磁盘上的会话信息还原到内存中,为用户服务,如果在这个总的缓存时间之内没有用户访问,EJB容器会把本地磁盘上的会话信息给清除掉,这时,访问bean实例,就会得到超时异常信息。
[/b]
相关文章推荐
- EJB3.0开发指南:有状态会话Bean
- EJB3.0开发指南:有状态会话Bean
- (1)EJB3.0 简介以及开发第一个无状态的会话bean 以及 客户端【关于JNDI】
- 传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean
- (3)EJB3.0 开发具有本地接口的----无状态bean
- Eclipse3.2.1+jboss4.0.5开发J2EE中的EJB (有状态会话Bean 附图)一
- Eclipse3.2.1+jboss4.0.5开发J2EE中的EJB(无状态会话Bean 附图)
- EJB开发第一个无状态会话bean、开发EJBclient
- EJB开发第一个无状态会话bean、开发EJB客户端
- Eclipse3.2.1+jboss4.0.5开发J2EE中的EJB (有状态会话Bean 附图)二
- 传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean
- EJB开发第一个无状态会话bean、开发EJB客户端
- 专稿:实战EJB之二 开发会话Bean(无状态会话Bean)
- 专稿:实战EJB之三 开发会话Bean(有状态会话Bean)
- Eclipse3.1.1+jboss4.0.5开发J2EE中的EJB(无状态会话Bean)
- JBoss+Ant实现EJB无状态会话bean实例
- 有状态、无状态会话bean开发例子
- EJB3.0开发指南:无状态会话Bean
- EJB3.0开发指南:实体Bean的继承:每类一表策略
- EJB中有状态会话Bean与无状态会话Bean