【EJB系列】(四)——EJB基本内容总结

来源:互联网 发布:淘宝免费推广的方法 编辑:程序博客网 时间:2024/05/01 16:08

整体感知

这里写图片描述

概念

EJB是Java当中编写业务逻辑的Bean,是分布式系统中的业务组件。

分类

SessionBean

学习这部分,可结合Spring的Singleton和Prototype。有状态的Bean,即在类内部保存了实例变量,针对不同客户端,需要new出不同的有状态的Bean来保存各自的状态。
对于SessionBean的调用包括本地调用,远程调用和Web Service方式调用。关于前两种调用方式的总结,见【EJB系列】(二)——JBOSS7中EJB的远程调用和本地调用
WebService方式的调用会在后续博文中总结。

Message Driven Bean

关于JMS和MDB的总结,见【EJB系列】(三)——JMS和MDB

发展

版本 特点 缺点 1.0 SessionBean,EntityBean 强制客户机采用远程方式调用EJB 1.1 正式支持实体Bean;引入XML格式的部署描述文件 2.0 引入本地接口;引入EJB-QL;MDB 2.1 WebService,有利于异构系统的整合;计时器:按指定时间和固定间隔来调用EJB,(在任务调度中应用);增强EJB-QL 3.0 抛弃了Entity,引进JPA作为持久化的解决方案;SessionBean不再需要Home接口,只需提供本地或远程接口Annotation 3.1 无序提供接口,异步方式调用,允许直接将EJB类放到WAR文件

与Spring关系

Spring的两大特性就是AOP和DI,在EJB中对AOP思想的实现是拦截器。一下就是通过@Interceptors@AroundInvoke实现了拦截器功能。

EJB的实现类

@Stateless@Remote@Interceptors(UserManagerInterceptor.class)public class UserManagerBean implements UserManager {    public void addUser(User user) {        System.out.println("user.username="+user.getUsername());        user.setId(9);    }    public String sayHello(String name) {        return "你好,"+name;    }}

拦截器

public class UserManagerInterceptor {    @AroundInvoke    public Object doit(InvocationContext context) throws Exception{        System.out.println("将要执行方法:"+context.getMethod().getName());        Object obj=context.proceed();        System.out.println(context.getMethod().getName()+"已经被执行");        return obj;    }}

DI,主要是通过XML或Annotation的配置。
与持久层结合上面,Spring是与Hibernate结合,在JavaEE中有JPA规范,其中包括的知识点和Hibernate类似,这里不做过多说明。

高级

主要是EJB的事务管理。在学习Spring的时候,Spring对Hibernate事务管理进行了封装,在那里我们就学习了事务特性,事务隔离级别,以及传播特性。这部分内容也会在单独的博客中总结。

总结

在学习这部分内容的时候,发现只有JMS这部分内容自己比较生疏,其他内容都可以与Spring和Hibernate中的相关知识进行类比学习。这么多相似的内容,需要进行深入地学习和总结啦!

0 0
原创粉丝点击