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的状态和对其动态修改参数等操作
EJB系列 - EJB高级概念的更多相关文章
- EJB系列 - EJB基础知识
本人博客文章网址:https://www.peretang.com/basic-knowledge-of-ejb/ 什么是EJB 可移植的, 可重用的, 可伸缩的业务应用程序的平台 为什么选择EJB ...
- Matlab绘图系列之高级绘图
Matlab绘图系列之高级绘图 原帖地址: http://blog.163.com/enjoy_world/blog/static/115033832007865616218/ Matlab绘图 20 ...
- Windows 8实例教程系列 - 数据绑定高级实例
原文:Windows 8实例教程系列 - 数据绑定高级实例 上篇Windows 8实例教程系列 - 数据绑定基础实例中,介绍Windows 8应用开发数据绑定基础,其中包括一些简单的数据绑定控件的使用 ...
- Kotlin——从无到有系列之高级篇(一):Lambda表达式
如果您对Kotlin很有兴趣,或者很想学好这门语言,可以关注我的掘金,或者进入我的QQ群大家一起学习.进步. 欢迎各位大佬进群共同研究.探索 QQ群号:497071402 进入正题 经过前面一系列对K ...
- RxJava系列2(基本概念及使用介绍)
RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...
- ElasticSearch 2 (28) - 信息聚合系列之高层概念
ElasticSearch 2 (28) - 信息聚合系列之高层概念 摘要 和查询表达式(query DSL)一样,聚合也有一种可编辑的语法:可以根据我们的需要混合以及匹配使用独立的功能单元.这也就是 ...
- net必问的面试题系列之基本概念和语法
上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉. 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系 ...
- 关于对象的行为、数组、继承和类的高级概念(Java)
1.对象的行为: (1)方法调用栈:所有的方法调用都维护在一个称为调用栈的结构中. 第一个被调用的方法就是main(),该方法是Jvm调用的,因此main()方法总 ...
- EJB系列 - 会话Bean基础知识
本人博客文章网址:https://www.peretang.com/basic-knowledge-of-session-bean/ 什么是会话 有限的时间周期内,客户端和服务器之间的连接 为什么使用 ...
随机推荐
- PHP 工厂模式 实例讲解
简单工厂模式:①抽象基类:类中定义抽象一些方法,用以在子类中实现②继承自抽象基类的子类:实现基类中的抽象方法③工厂类:用以实例化对象 看完文章再回头来看下这张图,效果会比较好 1 采用封装方式 2 3 ...
- Java虚拟机原理
1.编译机制 分析和输入到符号表: 词法分析:将代码转化为token序列 语法分析:由token序列生成抽象语法树 输入到符号表:将类中出现的符号输入到类的符号表 注解处理: 处理用户自定义注解,之后 ...
- 1.Node.js 接入微信公众平台开发
一.写在前面的话 Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程 ...
- 并行类加载与OSGI类加载
这回来分析一下OSGI的类加载机制. 先说一下OSGI能解决什么问题吧. 记得在上家公司的时候,经常参与上线.上线一般都是增加了一些功能或者修改了一些功能,然后将所有的代码重新部署.过程中要将之前的服 ...
- Windows、Office系列产品精华部分集锦
提示 有了这个帖子麻麻再也不用担心我因为四处找Microsoft家的软件和系统而四处劳累所烦恼了! 首先,你们最爱的老XP同志,XP同志虽然退休了,但是依然坚持在岗位上,向他致敬!! Windows ...
- 图解Git命令
上面的四条命令在工作目录.暂存目录(也叫做索引)和仓库之间复制文件. ·git add files把当前文件放入暂存区域. ·git commit 给暂存区域生成快照并提交. ·git reset - ...
- 2016计蒜之道复赛B题:联想专卖店促销
题解 思路: 二分答案,设我们要check的值为x. 注意到每一个礼包都有,一个U盘,一个鼠标. 剩余的,分别为一个机械键盘,一个U盘,一个鼠标. 当礼包数目为x时,我们至多可以提供a-x个普通,b- ...
- 如何通过JS实现简单抖动效果
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- HTML5资源教程
新款CSS3按钮组合 5组可爱CSS3按钮 Leave a reply 之前我分享过一些时尚的CSS3动画按钮,比如CSS3渲染Checkbox实现3D开关切换按钮.纯CSS3 3D按钮 按钮酷似牛奶 ...
- 使用nodeJS实现前端项目自动化之项目构建和文件合并
前面的话 一般地,我们使用构建工具来完成项目的自动化操作.本文主要介绍如何使用nodeJS来实现简单的项目结构构建和文件合并 项目构建 假设,最终实现的项目名称为'test',结构如下图所示 那么,首 ...