EJB第一次课外作业
一、选择题(多选)
1、 EJB组件有几种不同的类型
A)会话Bean B)消息驱动Bean C)实体Bean D)Java Bean E)企业Bean
2、 以下几个术语正确对应的是 A)EJB—企业Java Bean
B)DI—依赖注入
C)MDB—消息驱动Bean
D)IDE—集成开发环境
E)ISV—独立软件开发商
3、 以下关于JBoss目录叙述正确的是 A)bin,存放启动和关闭JBoss的脚本。
B)server/all/lib,一些JAR,JBoss在启动时加载他们。
C)server/all/data,JBoss的配置文件。
D)server/all/conf,在该目录下还有log与temp文件夹,存放JBoss的日志和临时文件。
4、 会话Bean分为哪几种不同的类型
A)无状态会话Bean
B)有状态会话Bean
C)有消息状态会话Bean
D)无消息状态会话Bean
E)企业Bean
5、 以下关于有状态和无状态会话Bean叙述正确的是 A)无状态会话Bean是无状态的,有状态会话Bean是有状态的。
B)所谓会话Bean中状态有无,是Bean所不能决定的,有EJB容器决定。
C)无状态会话Bean不需要维护客户多个方法调用间的会话状态。
D)有状态会话Bean会有一个自己的实例,而无状态会话Bean对任何调用者来讲都是相同的,任何客户调用功能都是相同的。
E)以上说法均不正确。
6、 在以下选项是EJB3.0中的注释中,其中用于会话Bean的生命周期的是
A)@PostDestroy
B)@PostConstruct
C)@PrePassivate
D)@Move
7、 以下关于EJB3.0中MDB特性的叙述,其中正确的是A)客户能够借助于业务接口访问到MDB,并能够同它进行交互,这是MDB的优势所在。
B)MDB存在远程或本地接口,用来方便消息发发送。
C)MDB不支持用于消息分发的监听器方法,这是区别于JMS的目的。
D)以上说法均不正确。
二、简答题:
1、 什么是EJB?EJB分类有哪些?
EJB(Enterprise JavaBean)是JavaEE应用的业务层技术标准, 以这项技术开发的组件叫做EJB组件,常常简称EJB
EJB架构是一个用于开发和部署基于组件的分布式业务应用的组件架构。
采用EJB架构编写的应用是可伸缩的、事务性的、多用户安全的。
可以一次编写这些应用,然后部署到任何支持EJB规范的应用服务器平台上。
特点(和JavaBean比较):
(1) 提供远程访问的能力
(2) 扩展、可插拔的能力
(3) 必须在EJB服务器上运行, 可享受服务器提供的事务、安全等服务 (Jboss, Weblogic, Websphere, Sun
Application server)
EJB分为三类:会话BEAN、消息驱动BEAN和实体BEAN
2、 什么是JDNI?
JNDI= Java Naming and Directory Interface(Java命名目录接口)
一套Java程序用来访问命名目录服务的接口规范
包括了一些标准API接口,消除了不同命名目录服务之间的差异,允许应用程序采用一致的JNDI接口来调用各种命名、目录服务。(包括文件访问)
3、 什么是注解?
注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻方便地使用这些数据。注解也被为元数据。
注解是Java SE5引入的重要语言特征之一,主要是用于把元数据与源代码文件结合在一起,而不是保存在外部文件中(如:配置文件)。
4、 什么是Session Bean?有什么功能特点?有哪些分类?Session Bean的业务接口有哪些种类?
Session Bean负责与客户端交互,代表一个可处理应用中业务逻辑的完整组件,主要包含了各种业务逻辑的实现代码。也就是是编写业务逻辑的地方。当Session Bean部署在EJB容器之后,其他客户端就可以获取该EJB组件,并调用它的方法。
功能特点有:
(1) 并发和线程安全
(2) 方便的Web Service的支持
(3) 事务和安全管理
(4) 远程访问,分布式支持
Session Bean分为两类:
(1) Stateful Session Bean(有状态会话 Bean )
有状态会话Bean的一个实例只供一个用户使用。
如果在方法调用期间有状态会话的状态发生改变,则这种改变必须反映到同一个客户的随后调用
中。
在客户端多次调用某个有状态会话Bean的方法时,只要客户端一直保持着该Session Bean的引用,
那么该有状态会话Bean就可以在多次客户端调用之间维护会话的状态。
(2) Stateless Session Bean(无状态会话 Bean )
无状态会话Bean的一个实例可供多个用户使用,无须维护与客户端之间的会话状态。
业务接口种类有:
(1) 远程(Remote)接口
当Session Bean实现远程接口时,它允许客户端通过远程来调用它的业务方法
(2) 本地(Local)接口
当Session Bean实现本地接口时,它只允许本地客户端调用它的业务方法
5、 无状态会话Bean的生命周期中有哪些状态?有状态会话Bean的生命周期中有哪些状态?
无状态会话Bean的生命周期中有:不存在、待命、被销毁
有状态会话Bean的生命周期中有:不存在、待命、去活、被销毁
6、 面向消息的架构的特点有哪些?
(1) 通信方之间无须直接耦合,可以互相不知道
(2) 既支持同步通信,又支持异步通信(VC++中PostMessage和SendMessage)
(3) 消息接收方可以一个或多个
(4) 具有很好的适应性
7、 JMS消息消费者有哪些种类?
同步消费者和异步消费者
8、 简述JMS的点对点和发布/订阅消息机制的不同。
PTP:
(1) 一对一的通信
(2) 可靠的通信(消息消费者可以不在线)
(3) 消息保存在永久介质上(比如:DB或文件)
(4) 消息目的称为“队列”(Queue):“先进先出”
Pub-Sub:
(1) 一对多的通信
(2) 不可靠的通信(不在线的消息消费者收不到)
(3) 消息不保存在JMS服务器里
(4) 消息目的称为“主题”(Topic)
9、 什么是MDB?MDB与Session Bean有什么异同?
Message Driven Bean(消息驱动Bean) ,是标准的JMS消息异步消费者,是EJB之一,是Java EE规范。
MDB是EJB和JMS整合产物 ,MDB是由无状态Session Bean发展变化而来的,具有无状态Session Bean的特点,如:容器管理、不保存状态等。
MDB与Session Bean的相同点:
(1) MDB是由无状态Session Bean发展变化而来的,用法相似
(2) 由EJB容器管理,享用容器提供的服务
(3) 用于编写应用程序的业务逻辑
MDB与Session Bean的不同点:
(1) 无业务接口(MDB只需要一个Bean类即可)
(2) 不能直接调用
(3) 通信是异步的
(4) 客户端不能直接获得异常
EJB第二次课外作业
一、选择题(多选)
1、 实体Bean与Session Bean有什么区别
A)不能够直接通过远程访问到实体。
B)实体的生命周期可能与应用本身的生命周期无关。
C)实体存在持久化、客户可见的状态。
D)以上说法都不正确。
2、 实体Bean是由什么组成的A)EntityManager对象。
B)persistence.xml的简单的XML部署描述文件。
C)纯粹的Java对象(POJO)。
D)实体
E)以上都是。
3、 实体Bean的生命周期分为哪几个状态
A)新建
B)受管
C)分离
D)等待
E)删除
4、 EJB3.0中的查询接口是
A)Select API
B)Find API
C)Selected API
D)Query API
E)以上说法都不正确。
5、 参数查询分为哪几种 A)命名参数查询。
B)类型参数查询。
C)地址参数查询
D)对象参数查询。
E)位置参数查询。
6、 以下哪种查询语句可以正确的执行 A)select o from Order o where o.id = :1
B)select o from Order o where o.id = :1 and o.customer = ?2
C)from Order o where o.id = 1?
D)from Order o where Order.id = 1?
E)以上均不正确。
7、 以下那条语句可以正确的查询到年龄(Age)为12、34的People是
A)select p People as p where p.Age=12 and p.Age=34;
B)select p from Person as p where p.Age=12 or p.Age=34;
C)select p People as p where p.age in(12,34);
D)from People as p where p.Age in(12,34);
E)只有B和C可以。
二、简答题:
1、 ORM是什么?其基本特征是什么?目前常见的ORM实现有哪些?
Object/Relation Mapping(对象/关系映射),是一种思想。
基本特征:完成面向对象编程语言到关系数据库的映射,使用开发人员能够使用面向对象的编程思想来操纵数据库
常见的ORM框架(实现):Hiberate、TopLink、iBatis等
2、 什么是JPA?JPA的主要目的是什么?目前常见的JPA实现有哪些?
JPA是Java Persistence API的缩写,即Java持久化API。JPA是Java EE技术规范中的一个重要组件部
分,它是一种ORM的规范,具体实现由应用器厂商来提供实现。
JPA主要是为了简化现有的持久化开发工作和整合ORM技术。
目前,常见的JPA实现有:Hibernate JPA、TopLink JPA、OpenJPA等。
3、 JPA的事务属性有哪些?有什么含义?
事务属性有:Required、RequiredNew、Mandatory、NotSupported、Supports和Never
4、 EJB的事务管理有哪几种?
容器管理事务(CMT):通过声明方式来管理事务,事务边界是固定的,也就是业务方法的开始和结束
作为事务边界
Bean管理事务(BMT):通过硬编码方式管理事务,可以灵活控制事务边界(JTA或JDBC方式)