当前位置: 首页 > article >正文

「Java EE开发指南」用MyEclipse开发EJB 3无状态会话Bean(一)

MyEclipse中文使用教程图集

本教程介绍在MyEclipse中开发EJB 3无状态会话bean,由于JPA实体和EJB 3实体非常相似,因此本教程不涉及EJB 3实体Bean的开发。在本教程中,您将学习如何:

  • 创建EJB 3项目
  • 创建无状态会话bean
  • 部署并测试bean

MyEclipse v2024.1离线版下载

一、创建一个EJB 3项目

首先创建一个包含EJB的新EJB 3项目。

注意:在本教程中创建的项目可在参考资料部分获得。

1. 选择 File>New>EJB Project

2. 在Project name字段中输入SampleEJBProject

3. 选择您选择的Java EE版本;对于本教程,选择JavaEE 8 - EJB 3.2作为JavaEE版本,为JPA Support选择None,然后单击Finish。向导中的其余字段都是从windows >Preferences>Frameworks>EJB project设置的MyEclipse EJB项目模板中填充的。

MyEclipse中文使用教程图集

创建一个新的EJB项目

您可以选择性地配置这个项目可能使用的任何数据源来生成EJB3 Entity Beans,但是正如前面提到的,这不是本教程的一部分。

新项目包括默认的ejbModule源文件夹和sampleejbproject包:

MyEclipse中文使用教程图集

项目结构

二、创建无状态会话Bean

创建无状态会话bean包括定义bean的接口和创建会话bean。当生成会话Bean时,它实现两个接口,一个用于本地调用(在同一个VM中),另一个用于远程调用(在VM之外,通过网络等),可以根据调用者公开不同的函数(例如,不要将返回大量数据集的方法公开给远程调用)。

对于本教程,在某些情况下,您将向bean的Local和Remote调用者公开完全相同的信息。由于这个假设,通过实现一个包含其中定义的所有方法的基本接口(本地和远程版本的bean扩展和会话bean实现),代码仍然易于遵循。结果如下所示:

MyEclipse中文使用教程图集

会话bean流

1. 右键单击sampleejbproject包,然后选择New>Interface

2. 在Class name字段中输入IMyBean

3. 点击Add,输入java.io。在Choose interfaces字段中选择Serializable,然后点击OK。这扩展了Serializable,因此如果需要,应用服务器可以更好地处理会话Bean。

4. 点击Finish

MyEclipse中文使用教程图集

新的Java接口

5. IMyBean接口在Java编辑器中自动打开,添加单个方法签名public void doSomething(); 然后保存文件。

MyEclipse中文使用教程图集

向接口添加方法

6. 右键单击sampleejbproject 包,然后选择New>EJB 3+ Session Bean

7. 在Name字段中输入MyBean,选择Remote and Local复选框来生成本地和远程接口版本,然后单击Finish

MyEclipse中文使用教程图集

创建具有本地和远程接口的会话bean

将“本地”和“远程”接口添加到项目中。

MyEclipse中文使用教程图集

会话bean和接口

需要修改MyBeanLocal和MyBeanRemote接口,来扩展MyBean,并向MyBean添加doSomething()的实现。如果没有定义IMyBean,则必须将其中的方法定义复制粘贴到MyBeanLocal和MyBeanRemote中,以公开这些方法,在单个接口中定义方法使事情变得简单一些。提醒一下,你现在有了这样的结构:

MyEclipse中文使用教程图集

8. 双击MyBean.java,并在最后一个括号之前添加以下代码,以实现添加到bean接口的doSomething()方法,按“Ctrl+S”保存。

public void doSomething() {
System.out.println("Hello World!");
}

此外,每个接口都需要扩展IMyBean。打开MyBeanLocal.java和MyBeanRemote.java,将 `extends IMyBean` 添加到公共接口。MyBeanLocal的一个例子如下:

public interface MyBeanLocal extends IMyBean {
}

未完待续,下期见......


http://www.kler.cn/a/594972.html

相关文章:

  • HTML5响应式使用css媒体查询
  • teaming技术
  • Python深浅拷贝
  • 【QA】装饰模式在Qt中有哪些运用?
  • 服务器——报错解决:移动文件时,bash: /usr/bin/mv: Argument list too long
  • Java基础关键_027_IO流(五)
  • 软考-软件设计师-程序设计语言
  • 数据结构——顺序栈seq_stack
  • 力扣刷题——143.重排链表
  • 多数据源@DS和@Transactional踩坑之路
  • 【负载均衡系列】Nginx
  • 到底爱不爱我
  • stm32-定时器
  • GITLAB部署安装教程
  • JNI介绍
  • 算法及数据结构系列 - 二分查找
  • 游戏引擎学习第172天
  • 深度解析历年蓝桥杯算法题,助力提升编程技能
  • Saga 模式实战 Demo
  • Compose 实践与探索十五 —— 自定义触摸