`

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
分享到:
评论

相关推荐

    EJB 2.0企业级应用程序开发 PDF 下载

    本书主要内容包括:构建EJB类及其接口的机制,EJB设计和性能的策略,构建Web层,EJB的高级概念等。附录包括了EJB 2.0的摘要及其新特征。本书内容翔实、深入浅出,提供了详细的讨论和实例,对于懂Java语言的EJB初学者...

    ejb3.0.ppt

    这是一个介绍ejb3.0持久化的一些高级概念的ppt 对于学习新的一面ejb3.0具有一定的价值.

    jsp从入门到高级编程

    1.1.5 EJB 1.1.6 Java Servlet 1.2 JSP技术 1.2.1 JSP技术概述 1.2.2 JSP的优势及与其他Web开发工具的比较 1.3 JSP开发Web的几种主要方式 1.3.1 直接使用JSP 1.3.2 JSP+JavaBeans 1.3.3 JSP+JavaBeans+...

    JSP高级教程

    1.1.5 EJB 1.1.6 Java Servlet 1.2 JSP技术 1.2.1 JSP技术概述 1.2.2 JSP的优势及与其他Web开发工具的比较 1.3 JSP开发Web的几种主要方式 1.3.1 直接使用JSP 1.3.2 JSP+JavaBeans 1.3.3 JSP+JavaBeans+...

    Java测试新技术TestNG和高级概念.part2

    展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的...

    JSP高级编程

    JSP高级应用实例:网上书店 12.1 概述 12.2 扩展标签的使用 12.2.1 数据集作用的BookList标签 12.2.2 让数据循环输出的Books标签 12.2.3 输出数据的标签 12.2.4 控制页面前进、后退的标签 ...

    jsp servlet 入门学习资料-新手一看就懂

    1.1.5 EJB 1.1.6 Java Servlet 1.2 JSP技术 1.2.1 JSP技术概述 1.2.2 JSP的优势及与其他Web开发工具的比较 1.3 JSP开发Web的几种主要方式 1.3.1 直接使用JSP 1.3.2 JSP+JavaBeans 1.3.3 JSP+JavaBeans+...

    Java测试新技术TestNG和高级概念.part1

    展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的...

    高级java2大学教程 源代码

    讨论了分布式编程,其中包括RMI、Jini、Jiro、JMX、CORBA以及JavaSpace的相关概念;介绍了有关网络服务的内容,并通过实例讲解了servlet和JSP的应用,然后列举了与其他Web服务相关的技术,例如WML、SOAP等。本书还...

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不...

    Java 2技术内幕(Part1)

    本书是讲述Java技术的权威著作,全面介绍了Java 2 SDK 1.4的各种功能,内容涉及Java 2高级编程主题的方方面面,如分布式对象编程、企业级Java应用、Java集成技术、Java媒体技术、设计Java类的方式等。全书贯穿了一个...

    Java 2技术内幕(Part2)

    本书是讲述Java技术的权威著作,全面介绍了Java 2 SDK 1.4的各种功能,内容涉及Java 2高级编程主题的方方面面,如分布式对象编程、企业级Java应用、Java集成技术、Java媒体技术、设计Java类的方式等。全书贯穿了一个...

    Java 2技术内幕(Part5)

    本书是讲述Java技术的权威著作,全面介绍了Java 2 SDK 1.4的各种功能,内容涉及Java 2高级编程主题的方方面面,如分布式对象编程、企业级Java应用、Java集成技术、Java媒体技术、设计Java类的方式等。全书贯穿了一个...

    Java 2技术内幕(Part3)

    本书是讲述Java技术的权威著作,全面介绍了Java 2 SDK 1.4的各种功能,内容涉及Java 2高级编程主题的方方面面,如分布式对象编程、企业级Java应用、Java集成技术、Java媒体技术、设计Java类的方式等。全书贯穿了一个...

    Java 2技术内幕(Part4)

    本书是讲述Java技术的权威著作,全面介绍了Java 2 SDK 1.4的各种功能,内容涉及Java 2高级编程主题的方方面面,如分布式对象编程、企业级Java应用、Java集成技术、Java媒体技术、设计Java类的方式等。全书贯穿了一个...

    Jakarta+Struts+编程[扫描版][中文]

    本书是Struts项目的完全指南,引导开发人员理解概念、设计和实现方式。虽然它由Struts应用程序的基础开始并深入讲解了Model 2设计方案,但这本书很快转入了较高级的主题。安装和设置贯穿文档始终,并且清楚地解释了...

    Spring攻略英文版(附带源码)

    第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法   1.2 使用服务定位器降低查找组件的复杂性   1.2.1 问题描述   ...

    Spring攻略PDF版

    第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法   1.2 使用服务定位器降低查找组件的复杂性   1.2.1 问题描述...

Global site tag (gtag.js) - Google Analytics