### EJB3.0 WebLogic 入门经典知识点解析 #### 一、EJB基础知识与运行环境配置 **1.1 什么是Enterprise JavaBeans (EJB)** EJB(Enterprise JavaBeans)是一种Java标准,用于构建分布式企业级应用程序。它是Java EE平台的核心组件之一,主要用于实现业务逻辑的组件化封装。EJB提供了事务管理、安全性、并发控制等高级功能,使得开发者可以更加专注于业务逻辑的编写而无需关心底层细节。 **1.2 EJB的运行环境** EJB组件需要部署在一个容器中运行,这个容器通常是应用服务器的一部分,例如WebLogic Server、JBoss等。容器负责管理EJB的生命周期,并提供必要的服务,如事务管理和安全性。 **1.3 什么是JNDI** JNDI(Java Naming and Directory Interface)是一种API,用于查找和访问命名和目录服务中的对象。在EJB环境中,JNDI常用于查找远程EJB对象的引用。 **1.4 下载与安装JDK** JDK(Java Development Kit)是Java开发工具包,包含了编译、运行Java程序所需的工具和库文件。安装JDK是进行Java开发的基础步骤。 **1.5 下载与安装Eclipse** Eclipse是一款开源的集成开发环境(IDE),支持多种编程语言,包括Java。对于EJB开发来说,Eclipse提供了一套完整的工具集,包括代码编辑、调试等功能。 **1.6 下载与安装JBoss** JBoss AS(Application Server)是一个开源的应用服务器,支持EJB规范。安装JBoss是部署和运行EJB应用程序的重要步骤。 **1.7 运行第一个EJB示例** 通过创建简单的EJB项目并运行,可以帮助初学者理解EJB的基本概念和工作流程。 **1.8 熟悉JBoss的目录结构** 了解JBoss的目录结构有助于更好地管理部署的应用程序和配置文件。 **1.9 在JBoss部署应用** 部署EJB应用程序到JBoss可以通过多种方式实现,如使用管理控制台或者命令行工具。 **1.10 如何恢复本书配套例子的开发环境** 为了确保读者能够顺利地跟着书中的例子学习,通常会提供一份详细的环境恢复指南。 #### 二、会话Bean (Session Bean) **2.1 Stateless Session Beans(无状态Bean)开发** 无状态会话Bean不保存任何客户状态,适用于短时间的任务处理。 **2.1.1 开发只实现Remote接口的无状态SessionBean** 无状态会话Bean可以只实现远程接口,用于客户端调用。 **2.1.2 开发只实现Local接口的无状态SessionBean** 还可以只实现本地接口,用于同一虚拟机内的组件调用。 **2.1.3 开发实现了Remote与Local接口的无状态SessionBean** 同时实现远程和本地接口的无状态会话Bean,既可以在远程也可以在本地调用。 **2.2 实例池化 (Instance Pooling)** EJB容器会为每个无状态会话Bean类型维护一个实例池,以便高效地复用实例。 **2.3 Stateless Session Bean的生命周期** 无状态会话Bean的生命周期比较简单,主要由容器管理。 **2.4 Stateful Session Bean(有状态Bean)开发** 有状态会话Bean保存了客户端状态,适合处理长时间的交互过程。 **2.5 激活机制 (Activation Mechanism)** 用于优化有状态会话Bean的内存占用。 **2.6 Stateful Session Bean的生命周期** 有状态会话Bean的生命周期相对复杂,涉及多个状态转换。 **2.7 EJB调用机制** 客户端通过远程接口或本地接口调用EJB。 **2.8 如何改变Session Bean的JNDI名称** 可以通过部署描述符或注解更改EJB的JNDI名称。 **2.9 Session Bean的生命周期事件** EJB提供了多个生命周期回调方法,如`@PostConstruct`和`@PreDestroy`。 **2.10 拦截器 (Interceptor)** 拦截器可以用来增强EJB的行为,如日志记录、性能监控等。 **2.11 依赖注入 (Dependency Injection)** EJB支持依赖注入,简化了组件之间的依赖管理。 **2.11.1 资源类型的注入** 可以注入如数据库连接、消息队列等资源。 **2.11.2 注入与继承关系** 了解如何在继承体系中正确使用依赖注入。 **2.11.3 自定义注入注释** 除了标准的注入注释外,还可以自定义注入注释来满足特定需求。 **2.12 定时服务 (Timer Service)** EJB提供了定时服务,允许组件安排定时任务。 **2.13 安全服务 (Security Service)** 用于实现EJB的安全性,包括身份验证和授权。 **2.13.1 自定义安全域** 可以自定义安全域来适应不同的安全策略。 #### 三、实体Bean (Entity Bean) **3.1 JBoss数据源的配置** 为了支持实体Bean的持久化操作,需要配置数据源。 **3.1.1 MySQL数据源的配置** MySQL是常见的关系型数据库,用于存储实体Bean的数据。 **3.1.2 MsSqlServer2000数据源的配置** MsSqlServer2000是另一种流行的关系型数据库选择。 **3.1.3 Oracle9i数据源的配置** Oracle数据库提供了强大的功能和性能。 **3.2 单表映射的实体Bean** 单表映射是最简单的实体Bean映射方式。 **3.3 成员属性映射** 实体Bean中的成员属性如何与数据库表中的字段对应。 **3.4 建议重载实体Bean的EQUALS()和HASHCODE()方法** 为了提高集合操作的效率,建议重写这两个方法。 **3.5 映射的表名或列名与数据库保留字同名时的处理** 当表名或列名与保留字冲突时,需要特殊处理。 **3.6 多表映射的实体Bean** 对于复杂的业务模型,可能需要使用多表映射。 **3.7 持久化实体管理器 ENTITY MANAGER** ENTITY MANAGER是EJB3中用于管理实体Bean的主要API。 **3.7.1 实体的状态** 实体可以处于不同状态,如托管状态、游离状态等。 **3.7.2 Entity获取find()或getReference()** 用于从持久化上下文中获取实体。 **3.7.3 持久化实体persist()** 将实体保存到数据库。 **3.7.4 更新实体** 更新数据库中的实体数据。 **3.7.5 合并Merge()** 合并实体的变化。 **3.7.6 删除Remove()** 从数据库中删除实体。 **3.7.7 执行JPQL操作createQuery()** 使用JPQL查询实体。 **3.7.8 执行SQL操作createNativeQuery()** 直接执行SQL语句。 **3.7.9 刷新实体refresh()** 刷新实体的状态。 **3.7.10 检测实体是否处于托管状态contains()** 检查实体是否被持久化上下文托管。 **3.7.11 分离所有正在托管的实体clear()** 清除持久化上下文中的所有实体。 **3.7.12 刷新flush()与设置flush模式setFlushMode()** 控制何时同步持久化上下文与数据库。 **3.7.13 获取持久化实现者的引用getDelegate()** 获取实体管理器的具体实现。 **3.8 关系/对象映射** 实体Bean之间可以通过各种关系进行映射。 **3.8.1 双向一对多及多对一映射** 实体之间的基本关系类型。 **3.8.2 单向一对多** 一种特殊的映射关系。 **3.8.3 单向多对一** 另一类常见的映射关系。 **3.8.4 双向一对一映射** 用于表示两个实体之间一对一的关系。 **3.8.5 单向一对一** 单向的一对一关系。 **3.8.6 双向多对多映射** 表示两个实体之间多对多的关系。 **3.8.7 单向多对多** 另一种多对多的映射方式。 **3.9 JPQL查询** JPQL(Java Persistence Query Language)是用于查询实体Bean的标准查询语言。 **3.9.1 命名参数查询** 使用命名参数进行查询。 **3.9.2 位置参数查询** 使用位置参数进行查询。 **3.9.3 Date参数** 处理日期类型的参数。 **3.9.4 一个JPQL查询例子** 示例展示如何使用JPQL查询实体Bean。 **3.9.5 命名查询** 预先定义好的查询。 **3.9.6 排序(orderby)** 按照特定顺序排列查询结果。 **3.9.7 查询部分属性** 只查询某些属性。 **3.9.8 查询中使用构造器(Constructor)** 使用构造器返回复合对象。 **3.9.9 聚合查询(Aggregation)** 计算统计值。 **3.9.10 关联(join)** 连接多个实体进行查询。 **3.9.11 排除相同的记录DISTINCT** 去除重复的记录。 **3.9.12 比较Entity** 比较实体对象。 **3.9.13 批量更新(BatchUpdate)** 批量更新实体。 **3.9.14 批量删除(BatchRemove)** 批量删除实体。 **3.9.15 逻辑非运算符NOT** 使用逻辑非运算符。 **3.9.16 使用操作符BETWEEN** 使用BETWEEN进行范围查询。
- 粉丝: 172
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Cisco 思科 CP-7945g 7965g sip模式固件 9.4.2
- 贪吃蛇方案设计的方法.zip
- 微信支付账单(20240731-20240731).zip
- minio20240920.tar
- 集成供应链(Integrated Supply Chain,ISC)核心业务流程再造,华为的最佳实践
- zabbix-server-pgsql-7.0-centos-latest.tar
- zabbix-web-apache-pgsql-7.0-centos-latest.tar
- Altium Designer 24.9.1 Build 31 (x64)
- 基于JAVA的人机对弈的一字棋系统设计与实现课程设计源代码,极大极小搜索和α-β搜索算法
- 电子回单_2024092100085000842531409053050071685353.pdf