`

EJB系列 - EJB高级概念

阅读更多

本人博客文章网址:https://www.peretang.com/ejb-advanced-concepts/


EJB内幕

幕后的EJB:容器会为每一个bean实例自动生成称为EJB对象的代理, 由容器实现, 对使用者开发者透明

EJB上下文: 在理想情况下, 不应该编程中使用EJB上下文对象; 但现实中, 难免有要求, 所以便有EJBContext的存在; 对应会话bean的专有子类SessionContext, 对应MDB的专有子类MessageDrivenContext; 可通过@Resource注入, 注入时, 容器会根据当前bean的类型自动注入专有子类

 

依赖注入和JNDI访问资源

@Resource:EJB3中依赖注入最全面的注解; 参数: name: 其值会在容器进一步解析, 其形式为 java:conp/env/{name}的全限定JNDI名;

在幕后容器在部署过程中会把EJB组件, 服务解析为资源, 并把资源绑定到ENC(环境命名上下文); 使用设置器(setter)注入, 方便单元测试, 便于初始化

@Resource实际应用:
a. 注入JMS资源
b. 注入EJBContext
c. 访问部署描述文件中的环境条目
d. 注入JavaMail
e. 注入计时器服务

@Resouce继承: 如果超类使用@Resouce注解定义了任何资源, 它们可以被子类继承

查找资源与EJB: 使用查找(即使用API)而非依赖注入允许在运行时动态地确定要使用哪些资源

 

EJB中的AOP 拦截器

AOP概述:面向切面

什么是拦截器: 拦截器是EJB版的AOP, 没有真正AOP强大, 但使用简单; 拦截器只有一种形式"环绕调用通知". 在方法的开头和方法的返回时被触发, 可用于业务方法和生命周期回调方法,可用于会话bean和消息驱动bean

指定拦截器:
a. @Interceptions注解允许方法或类调用一个或者多个拦截器类; 当在类级别注解使用拦截器时, 其生命周期会触发拦截器中的生命周期回调拦截器方法, 调用业务方法时怎会触发业务方法拦截器; 除了方法和类级别的拦截器之外, 还有默认拦截器, 只能在部署描述文件中进行设置
b. 拦截器的调用顺序: 从大作用域到小作用域进行的, 首先是默认拦截器到类拦截器到方法拦截器
c. 在同级的多个拦截器调用顺序: 按照注解中的的顺序执行
d. 可使用@ExcludeDefaultInerceptors禁止默认级别拦截器; 可使用@ExcludeClassInerceptors禁止类级别拦截器

拦截器的实现: 
@AroundInvoke注解被触发的环绕调用方法, 一个拦截器类中只能有一个被该注解注解的方法
环绕调用方法的方法签名必须遵守Object <method name> (InvocationContext invocationContext) throws Exception
InvocationContext接口: 可以动态检查被拦截的bean的状态和对其动态修改参数等操作

 

0
1
分享到:
评论

相关推荐

    ejb3.0学习资料PDF格式

    **EJB 3.0 学习指南** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的一部分,用于构建可扩展、...提供的"ejb3.pdf"文档将详细阐述这些概念和实践,对于想要提升Java EE技能的人来说是一份宝贵的资源。

    EJB3-智联传播的2个版本的pdf文件

    这本书可能更深入地探讨了EJB3.0的高级特性和最佳实践,可能包含以下主题: 1. **查询语言JPA QL**:介绍如何使用JPQL(Java Persistence Query Language)进行数据库查询。 2. **复合组件**:讲解如何组合多个EJB...

    EJB-PPT MIE456 Tutorial

    ### EJB-PPT MIE456 教程:企业级Java Beans 组件...它通过提供一系列高级服务来简化开发流程,使开发者能更专注于核心业务逻辑的实现。了解EJB的基本概念、架构和部署流程对于企业级应用的开发者来说是非常重要的。

    ejb-3_0-edr-spec

    本篇文章将详细介绍 EJB 3.0 规范的关键概念和技术细节,并基于给定的部分内容对 EJB 3.0 的早期草案进行深入分析。这包括 EJB 3.0 的核心特性、架构设计原则以及如何利用这些特性来构建高效的企业级应用。 #### 二...

    实战EJB 实战EJB 实战EJB

    #### 七、实战EJB之六至八:高级EJB2.0主题 **开发EJB2.0的CMP (本地接口例程)** EJB2.0引入了本地接口的概念,允许开发者使用本地接口访问EJB组件,提高性能。在这一部分,我们将学习如何使用本地接口实现CMP实体...

    EJB集群EJB集群资料

    在高级设置中,名称设置为all,以启用集群功能。启动JBOSS服务器时,需要指定 `-c all -b` 参数来指定服务器的网络地址。 发布无状态会话Bean到集群中,开发者需要将Bean打包成JAR文件,并将其放置在集群中任意一个...

    hello-ejb.rar_ejb_ejb java

    本教程通过一个简单的EJB实例——"hello-ejb",来帮助大家了解EJB的基本概念、结构以及部署流程。 首先,让我们来看看"Ejb"是什么。EJB全称为Enterprise JavaBeans,它是Java平台上的一个标准,定义了如何在分布式...

    ejb3.0非常实用教程

    - 使用`jboss-deployment-structure.xml`进行高级配置。 3. **EJB打包** - 使用`ejb-jar.xml`进行配置。 - 打包成`.jar`或`.war`格式。 4. **使用第三方类库** - 将第三方库添加到项目的`lib`目录。 - 在`pom....

    EJB入门及高级特性

    本教程将带你深入理解EJB的基本概念、开发流程以及高级特性,助你轻松掌握这个强大的技术。 **1. EJB开发流程** EJB的开发通常包括以下步骤: - **设计实体模型**:基于业务需求,设计数据模型,通常使用Entity ...

    JPA学习笔记-EJB-04JPA关联映射总结

    在EJB(Enterprise JavaBeans)框架中,JPA被广泛使用,提供了一种面向对象的方式来处理数据库交互。本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将...

    使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x)

    总结来说,使用Eclipse和JBoss开发EJB 3.x应用是一种高效且灵活的方式,它结合了IDE的强大功能和EJB的高级服务。通过注解驱动的编程模型和强大的依赖注入机制,开发者可以专注于业务逻辑,而不是繁琐的基础设施代码...

    Manning.EJB.3.0.in.Action

    - **章节内容**:介绍EJB 3.0中的一些高级特性和概念。 - **核心知识点**: - 实体Bean的新特性。 - EJB 3.0中的持久化机制。 - 高级配置选项和最佳实践。 #### 第6章:事务处理和安全性 - **章节内容**:探讨...

    ejb-jndi

    【ejb-jndi】章节主要讲解了Java Naming and Directory Interface (JNDI)的相关概念、问题以及架构。JNDI作为一个Java平台的标准接口,它为开发者提供了通过名字查找和访问各种命名服务和目录服务的能力。 1. **...

    EJB基础(学习EJB者必看)

    它可以帮助读者快速理解和掌握EJB的各个方面,从基本概念到高级特性,为开发高效、可扩展的企业级应用打下坚实的基础。对于Java EE开发者来说,深入理解并熟练运用EJB是提高生产力和保证软件质量的关键。

    分布式对象和EJB基本概念以及调用

    ### 分布式对象与EJB的基本概念及调用机制 #### 一、分布式对象概述 分布式对象技术是一种软件设计模式,允许对象在其方法被远程调用...无论是对于初学者还是高级开发者来说,理解和掌握这些核心概念都是非常重要的。

Global site tag (gtag.js) - Google Analytics