java ee ejb_javaEE-EJB学习笔记

EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)

JavaEE 规范

支持企业级应用软件的开发

客户层:Applet、客户应用程序

表示逻辑层:JSP、Servlet  Web容器

业务逻辑层:EJB 构件 EJB容器

数据库层:数据库

无状态会话Bean

为客户提供计算服务

描述业务逻辑(计算服务、数据库查询)

无上下文关系、不需要引用参数和数据库之外的数据

单独的会话Bean对象是不可以共享的,它只能有一个

客户端访问,同样一次会话也只能有一个用户

不保存客户的任何数据状态

构件接口

本地接口:提供给本机程序

远程接口:提供给其他网络程序

生存周期

容器管理Bean构件池,负责创建和实例化

无状态会话Bean不会进行钝化(Passivate)

//远程接口

import javax.ejb.Remote;

@Remote//标注接口(标记接口...)

public interfaceMyNameRemote {publicString method_1( );

}//接口的实现

import javax.ejb.Stateless;

@Stateless//标注接口:无状态Bean

public classMyNameBean implements MyNameRemote {public String method_1( ) { return “string” }

}

专用标注(annotation)代替专用基本类、接口

@EJB 构件引用

@Remote 远程接口

@Local 本地接口

@Stateless 无状态Bean

@Stateful 有状态Bean

有状态会话Bean

客户专用的会话Bean构件

维护客户的数据,支持作业session处理

案例:网上商城系统中的购物车

特点:特定客户、特定业务的需求

作为软件组件,为应用程序共享

注意

有状态会话Bean的每个用户都有自己的一个实例,所以

不同的客户对有状态会话Bean的操作不会影响对方

如果后面需要操作某个客户的有状态会话Bean实例,必

须在客户端缓存有状态会话Bean的引用对象

在JSP、Servlet中通常的做法是用Session缓存

生命周期

客户引用: 初始状态→工作状态

长时间不用: 工作状态→挂起状态

客户请求: 挂起状态→工作状态

超时: 挂起状态→初始状态

//远程业务接口(AccountBeanRemote.java)

package session;

import javax.ejb.Remote;

@Remote//远程接口

public interfaceAccountBeanRemote {double getBalance() throws Exception; //查余额

void deposit(double amount) throws Exception; //存款

void withdraw(double amount) throws Exception; //取款

doubleresetAccount();

}

package session; EJB构件的实现

import javax.ejb.Stateful;

@Stateful//有状态会话Bean

public classAccountBean implements AccountBeanRemote {private double account =0.0;public doublegetBalance() throws Exception {return this.account; //返回余额

}public void deposit(doubleamount) throws Exception {if(amount<0){ //核查输入存款数是否合理

throw new Exception("Error Amount");

}

account+= amount; //累加存款

}public void withdraw(doubleamount) throws Exception {if(amount < 0){ //核查输入存款数是否合理

throw new Exception("Error Amount");

}if(account

throw new Exception("Account is not Enough");

}

account ‐= amount; //减除存款

}public doubleresetAccount() {this.account = 0.0;return this.account;

}

}

上边这个是有状态会话bean的一个例子,仅供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值