EJB系列(一)——Session Bean基础介绍

 首先为EJB正言:

网上类似于EJB是不是过时了?EJB已经完全被Spring+hibernate轻量级框架取代的言论很多,在应用中一些大项目确实也有在使用EJB或者其他框架进行开发,在ITOO项目中既然选型使用了EJB,用就用好,所以不管以后有无相关EJB的开发机会,技术遇到一个,熟悉应用一个,这也是作为一个积极开发者需要具备的心态和自我积累的意识。

正文:

J2EE企业级项目开发平台的框架使用主要可分为两个大分支,一是以spring+hibernate +tomcat/jetty的轻量级java EE应用,还有一大类就是EBJ3+Jboss/webLogic/WebSphere 的经典 javaEE应用。在目前,EJB是企业级开发会用到的一个重量级的java框架,主要适用于开发大型项目。但对于一些小型的网站,由于小型的网站本来服务器资源就比较少,可以选择轻量级框架。两者都具有稳定的性能和极高扩展性可维护。在ITOO云平台开发中使用了EJB,故提笔分享EJB相关使用。从基础逐步深入介绍。

一、EJB的概念和优势

1、诞生背景

EJB(Enterprise Java Bean)作为J2EE核心规范之一,历经1.0,1.1,2.0,2.1,到目前的EJB3,从2.0的难上手到3.0的简易,越来越获得企业级应用的青睐。随着软件规模的扩大,软件的复杂度和技术难点增加,各种分布式软件开发技术慢慢出现。

EJB作为建立在分布式软件开发技术的架构,亮点就在于它提供的访问控制、事务安全、EJB容器的声明式事务管理、安全管理,通过添加注解远程调用无状态session Bean等服务,可使得开发者集中精力解决负责的业务逻辑,而不用花费精力处理分布式服务器、远程调用等底层技术,大大提高了代码开发效率。

2、概念

EJB是负责处理事务、访问控制、远程调用等系统问题的一套组件,开发者只需要调用EJB的方法,其他的事情由EJB负责管理。Ps:说到这里,感觉EJB和Spring有很多相似之处。

二、EJB的分类

EJB3主要将EJB分为两类,会话(session)Bean和消息驱动(MDB) Bean。

1、会话Bean

Session Bean 代表一个业务逻辑的完整组件,主要包含业务逻辑的实现代码。当Session Bean部署在EJB容器中后,其他客户端便可获取该EJB组件,调用它的方法。在ITOO中主要也是使用会话Bean,在不同系统不同模块中,通过EJB 会话bean来进行数据传递,方法调用。

从客户端获取Session Bean 到调用结束,可称为客户端和Session Bean 的一次会话,所以叫做会话Bean。

2、会话Bean的功能

a) 并发和线程安全

运行在EJB中的Session Bean可供多个客户端调用,开发者无需顾虑调用Bean的线程安全问题。

b) 事务和管理安全

EJB容器能以声明式事务的方式来管理运行在其中的Session Bean的事务和安全。这个作用跟Spring 容器通过AOP以声明式方式(spring 配置文件,添加AOP的标签,管理事务)来管理容器中的Bean是一个道理。

3、会话Bean的分类

a) 有状态的Session Bean

Stateful 有状态的Session Bean是指客户端在多次调用某个Session Bean的方法时,只要客户端没有断开与该Session Bean的连接,这个Session Bean就可以在多次调用之间一直保持连接状态。具体实现是Session Bean通过一个或多个Session Bean实例变量记录当前会话状态,在下次调用时该Session Bean还保持这该会话的连接。

b) 无状态的Session Bean

Stateless 无状态的Session Bean无需维护与客户端的会话状态,不需要指定实例变量,哪怕是指定了实例变量,那该变量也只在调用期间有效,一旦调用结束,Session Bean与客户端的相关状态便不会被保留。

 

本系列博客将针对会话Bean进行,消息驱动Bean有精力再进行介绍。

你可能感兴趣的:(EJB系列(一)——Session Bean基础介绍)