EJB系列 – 会话Bean基础知识

科技动态 2017-06-20 阅读原文

什么是会话

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

为什么使用会话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注解的方法

博客园精华区

责编内容by:博客园精华区阅读原文】。感谢您的支持!

您可能感兴趣的

Searching for Web Services with SQL I had a bit of a shock recently when thinking about combining a service oriented architecture with a brilliant UI which ...
Invoking a PGP encrypted lambda web service with 5... I have just now released a new version of Phosphorus Five , where one of the major new features is that it is now ...
时机尚未成熟,当前证券通证行业不需要标准化... 证券通证领域中的标准化问题可能是比较敏感的。显然,社区中有一部分人认为证券通证需要标准化。本文却倾向于相反的观点。证券通证行业仍处于非常早期的阶段,仍然缺少99%的基础设施以成为证券的相关工具,同时,根本没有足够多的证券通证来制作具有统...
Reactive Spring Security For WebFlux REST Web Serv... In this series of posts, we'll dive into how exactly to configure Spring Security for reactive and stateless WebFlux RES...
Building Trust Unlocks Great Business Potential. B... Consumer trust in companies decreases at an ever faster pace. Caused by data breach scandals as well as privacy-intrusiv...