EJB开发代码实例
需积分: 0 74 浏览量
更新于2016-02-27
收藏 39KB DOC 举报
### EJB开发代码实例分析
#### 一、概述
企业JavaBeans (EJB) 是Java平台对企业级应用程序组件的一种标准规范。它定义了一种软件组件模型,这些组件可以在分布式环境中运行,提供高可用性、安全性和事务管理等功能。EJB 3.x版本引入了许多简化开发的新特性,例如注解支持,使得开发者可以更方便地开发和部署EJB组件。
本篇文章将基于提供的文件内容,详细介绍两个EJB组件实例:无状态会话Bean和有状态会话Bean,并深入探讨其设计与实现原理。
#### 二、无状态会话Bean实例
**1. 业务接口(PersonalRevenue)**
```java
import javax.ejb.Remote;
@Remote()
public interface PersonalRevenue {
public float getPersonalRevenue(float salary, float start);
}
```
- **接口声明**:`@Remote()`注解表明这是一个远程业务接口。
- **方法**:`getPersonalRevenue(float salary, float start)` 用于计算个人收入税。
**2. Bean类(PersonalRevenueBean)**
```java
import javax.ejb.Stateless;
@Stateless()
public class PersonalRevenueBean implements PersonalRevenue {
// ...
}
```
- **类声明**:`@Stateless()`注解表明这是一个无状态会话Bean。
- **实现方法**:实现`getPersonalRevenue(float salary, float start)`方法,根据传入的工资和起征点计算个人收入税。
**3. 应用客户端(PersonalRevenueClient)**
```java
import javax.ejb.EJB;
public class PersonalRevenueClient {
@EJB
private static PersonalRevenue personalRevenue;
public static void main(String[] args) {
PersonalRevenueClient client = new PersonalRevenueClient(args);
client.doGetPersonalRevenue();
}
public void doGetPersonalRevenue() {
try {
float revenue = personalRevenue.getPersonalRevenue(3000, 1600);
System.out.println("工资为:3000元的人需要缴纳的个人所得税为:" + revenue + "元。");
} catch (Exception ex) {
System.err.println("产生未知异常!");
ex.printStackTrace();
}
}
}
```
- **客户端代码**:
- 使用`@EJB`注解来自动注入`PersonalRevenue`接口的实现。
- `doGetPersonalRevenue`方法调用`getPersonalRevenue`方法并打印结果。
**4. Web客户端**
虽然没有给出具体的JSP实现代码,但可以使用JSP页面作为前端展示层,通过调用上述的EJB服务来实现。
#### 三、有状态会话Bean实例
**1. 业务接口(Cart)**
```java
import java.util.List;
import javax.ejb.Remote;
@Remote
public interface Cart {
public void initialize(String person) throws BookException;
public void initialize(String person, String id) throws BookException;
public void addBook(String title);
public void removeBook(String title) throws BookException;
public List<String> getContents();
public void remove();
}
```
- **接口声明**:`@Remote`注解表明这是一个远程业务接口。
- **方法**:定义了购物车的各种操作方法,如初始化、添加书籍、移除书籍等。
**2. Bean类(CartBean)**
```java
import javax.ejb.Stateful;
@Stateful
public class CartBean implements Cart {
// ...
}
```
- **类声明**:`@Stateful`注解表明这是一个有状态会话Bean。
- **实现方法**:实现`Cart`接口中的各种方法。
#### 四、总结
本文通过两个具体的EJB组件实例,详细介绍了无状态会话Bean和有状态会话Bean的设计与实现。无状态会话Bean适用于那些不需要维护会话状态的服务,而有状态会话Bean则适合需要在多次调用之间保持状态的应用场景。EJB 3.x的简化特性使得开发者能够更加专注于业务逻辑的实现,而无需过多关注底层框架细节,从而提高了开发效率和可维护性。
autumnday
- 粉丝: 0
- 资源: 1
最新资源
- 基于hadoop的百度云盘源代码(亲测可用完整项目代码)
- CTF比赛工具合集-多种竞赛场景源码.zip
- 基于深度学习4j价格预测与语义分析源码+实战项目.zip
- Django+MySQL新冠疫情数据可视化平台源码+设计报告.zip
- 基于Django自动化测试管理系统python源码+设计报告(高分项目).zip
- Django高考志愿填报智能推荐系统python源码+设计论文(2024年毕业设计).zip
- Docker和Kubernetes构建的服务管理系统设计与实现 + 设计报告(Java版).zip
- DQN柔性作业车间调度-带插单的动态调度问题(含源码+项目说明+设计报告).zip
- ESP32-CAM+MicroPython+Flask智能Web视频监控与目标检测系统 + 设计报告.zip
- ESP8266墨水屏开发板项目(C++源码+硬件PCB资料+开发手册).zip
- Fisco Bcos支持的NFT数字藏品网站-交易不可篡改且可追溯溯源(含源码及论文资料).zip
- Facenet深度学习人脸识别系统(含源码+项目说明+亚洲人脸数据集+设计报告).zip
- FISCOBCOS匿名投票系统源码+设计报告及全部资料(Paillier加密).zip
- FPGA加速交通标志识别-卷积神经网络实现(含源码+项目说明+硬件设计).zip
- Flask框架YOLOv5检测训练源码+快速搭建手册.zip
- GAILC2024无人机双光检测Rank6源码+项目报告文档.zip