什么是ejb?
Written in the Javaprogramming language, an enterprise bean is a server-side component that encapsulatesthe business logic of an application. The business logic is the code thatfulfills the purpose of the application.
企业级java bean是用java编写的一个服务器端的组件,它封装了应用程序的业务逻辑,这些业务逻辑实现了应用程序编写的目的。
为什么使用ejb?
1.由容器来管理系统级的服务,例如事务管理和安全认证,开发人员可以专注于业务逻辑问题的解决。
2.由于由bean来管理程序的业务逻辑,客户端开发人员可以专注于客户端的展现,而不需要关心业务逻辑的实现规则或者数据库的访问。
3.因为enterprise beans是可移植的,程序组装者可以在已有的bean上构建新的应用程序。只要他们使用标准的API,这些应用程序可以运行在任何兼容的Java EE服务器。
Enterprise Beans 的类型
什么是session bean
一个封装了业务逻辑并可以被本地、远程或者web serivcie客户端调用的bean。客户端通过调用session bean的方法来访问部署在服务器上的应用程序,Session bean执行客户端的工作,从而避免其在服务器上执行复杂的业务逻辑操作。
Sessionbean的数据不会被保存到数据库中。
Session bean的类型
有状态会话bean(Stateful Session Beans)
每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。
无状态会话bean(Stateless Session Beans)
bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean。但无状态会话bean 并非没有状态,如果它有自己的属性(变量),那么这些变量就会受到所有调用它的用户的影响,这是在实际应用中必须注意的。
单例会话bean(Singleton Session Beans)
单例会话bean一个应用中只实例化一次比存在于应用的整个生命周期中,适用于被多个客户端并发访问的enterprise bean.
什么时候去用会话bean
满足以下情况的用有状态会话bean:
1. bean的状态表示了bean和指定的客户端的交互。
2. 在方法调用的时候bean需要保存客户端的信息。
3. Bean是客户端和其它应用组件的中间件,并展现一个简单的试图给客户端。
4. 在幕后,bean管理几个enterprise bean的工作流
满足以下情况使用无状态会话bean:
1. bean不保存特定客户端的信息。
2. 在一个单一的方法调用当中,bean为所有的客户端提供一个通用的服务。
3. Bean实现了一个web service
满足以下情况使用单例会话bean:
1. 状态需要在整个应用中共享。
2. 一个enterprise bean需要被多个线程并发访问。
3. Bean需要enterprise bean在启动和停止时执行任务。
4. Bean实现了web service
什么是消息驱动bean
Amessage-driven bean is an enterprise bean that allows Java EE applications toprocess
messagesasynchronously. This type of bean normally acts as a JMS message listener,which is similar to an event listener but receives JMS messages instead ofevents.