EJB基础

J2EE包含组件:servlet,JSP,EJB等

EJB包含三种bean:
1)session bean
2)entity bean
3)message-driven bean

容器:提供特定程序组件服务的标准化运行时环境,为组件提供与部署、执行、生命周期管理、安全和其他组件需求相关的服务。web组件和业务组件包含在容器中。

  • Web容器(如Tomcat):包含JSP和servlet组件,Web容器中的组件可调用EJB容器中的组件完成复杂的业务逻辑。
  • EJB容器(如JBoss):包含的组件为EJB,用于业务逻辑的实现。
  • Applet容器
  • Application Client容器

java持久化:使用对象-关系映射方法将面向对象模型和关系数据库联系起来。由三个部分组成:

  • java持久化API
  • 查询语言
  • 对象-关系映射元数据

    J2EE容器

    会话bean
    会话bean是可以被客户端直接调用的EJB组件。
    会话包括:http请求,Telnet,FTP等。
    有状态:会话调用之间维护其状态。无状态:一次性调用。
    会话bean分为两部分,接口(local,remote)和实现。
    拦截器是基于AOP的EJB版本。AOP将横切事项隔离到各自的模块中。
    计时器服务是轻量级应用程序调度器的EJB版本,将会话bean转化为循环或非循环的调度任务。

InitialContext ctx = new InitialContext;
HelloEJBRemote hr = (HelloEJBRemote)ctx.lookup("HelloEJBBean/remote");


xxxEar.ear
默认JNDI名称:xxxEar/xxxBean/local;xxxEar/xxxBean/remote;
xxxJar.jar
默认JNDI名称:xxxBean/local;xxxBean/remote;
自定义JNDI名称
@RemoteBind(jndiBinding="xxx")

会话bean的生命周期
1)创建会话bean:容器调用bean对象的newInstance方法。
2)实例化会话bean
3)销毁bean

@PostConstruct:bean实例化之后
@PreDestroy:销毁bean之前
@PrePassivate:有状态的会话bean空闲过长时,会进行钝化,状态保存在缓存之前
@PostActicate:钝化的bean被调用,新的bean被实例化,状态被恢复之后
@Init:有状态会话bean初始化,顺序位于PostConstruct之前
@remove:指定该方法执行完之后因把bean实例从对象池中移走。

拦截器

拦截器MyInterceptor
public class MyInterceptor{
    @AroundInvoke
    public Object xxx(InvocationContext ctx)throws Exception{
        try{
            if(ctx.getMethod().getName().equals("xxxMethod")){
                ....
            }
            return ctx.proceed();
        }
        catch(Exception ex){
            throw ex;
        }
    }
}

被拦截的bean
@Stateless
@Local(Mybean.class)
public class Mybean{
    @Interceptor(MyInterceptor.class)
    public void xxxMethod(){
        ....
    }
}

依赖注入
1)注解 @EJB(beanName=”xxx”)
2)ENC中获取资源的引用,通过 ejb-jar.xml定义。

xxxBean bean =(xxxBean)ctx.lookup("java:comp/env/xxxBean");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值