首页 > Java > java教程 > 正文

什么是会话?为什么使用会话bean?

PHP中文网
发布: 2017-06-21 10:14:22
原创
2449人浏览过

本人博客文章网址

什么是会话

  有限的时间周期内,客户端和服务器之间的连接

为什么使用会话bean

  因为EJB大部分服务都是专门提供给会话bean的  

  1. 并发和线程安全: 容器利用很多技术来自动确保开发者不必担心并发或线程安全的问题
  2. 远程处理和Web服务的服务提供
  3. 事务和安全管理
  4. 拦截器

 

会话bean的规范

  1. 至少具有一个业务接口(EJB3.1后可以不需要)
  2. 会话bean必须是具体的, 不能把会话bean定义为final的, 或抽象的
  3. 会话bean中必须有无参的构造器
  4. 可以在会话bean类或者父类中定义业务方法和生命周期回调方法
  5. 会话bean可以是另一个会话bean或者任何其他POJO的子类, 当是另一个会话bean 的子类时, 父类中定义的生命周期回调方法和依赖注入的注解都会被当前bean类继承
  6. 会话bean方法不能以"ejb"开头, 所有业务方法都必须为公开的, 不能是final或者静态方法, 另外如果该会话bean是remote的话, 所有入参和出参都必须实现序列化接口

 

业务接口

  1. 本地接口:@Local 相同的容器(JVM)实例中进行协同操作
  2. 远程接口:@Remote 不同的容器(JVM)实例中进行协同操作 通过RMI进行访问
  3. Web服务端点接口:@WebService 为无状态bean独有,可以把无状态bean暴露为基于SOAP的Web服务

  处理多个业务接口:不能用一种以上的访问类型注解标记同一个接口,可以选择用父接口,然后子接口继承来避免代码重复

 

无状态会话bean

  用于建模不维护会话状态的任务

  有两种创建模式, 一种是池化, 由容器创建会话bean池, 并创建相应数量的会话bean示例, 并对其进行管理; 另一种是单例模式(需要EJB3.1及以后的版本才支持)

  注解:@Stateless 通知容器该类是无状态bean,容器会自动为bean提供:并发控制,线程安全,池化,事务管理等服务

 

有状态会话bean

  用于建模需要维护会话状态的任务,EJB容器会为我们保持会话的状态

  必须有使用@Remove注解的方法

  注意项:适当选择会话的数据,尽量使用占有资源小的数据;记得使用钝化和删除

  替代方式:如果是Web应用,使用HttpSession来维护状态

 

会话bean最佳实现

  1. 选择会话bean类型, 即是有状态bean还是无状态bean

  2. 分析会话bean接口类型(@Local,@Remote)

  3. 不要把有状态会话bean注入无状态会话bean或者Servlet中

  4. 分割横切事务项(使用拦截器AOP来处理)

  5. 有状态会话bean中储存的数据类型(慎重选择)

  6. 有状态会话bean必须定义@Remove注解的方法

以上就是什么是会话?为什么使用会话bean?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号