EJB3拦截器(Interceptor)

爆肝整理:微信公众号文章HTML编写完整规范,运营必备手册 微信公众号文章排版总是出错?📱 这份完整的HTML编写规范文档帮你彻底解决!文档包含所有支持的标签、CSS属性、实用代码模板和注意事项 📋,让你快速掌握微信文章的HTML编写技巧,告别第三方编辑器依赖 ✅ 阅读详情
可以说拦截器是AOP在EJB world里面的实现,拦截器可以用于SesstionBean和Message Driven Bean。拦截器可以用Descriptor file或者annotation来实现,但是基本上我们都是用annotation来实现。拦截器可以用来
       看下@Interceptors的J2EE文档,发现它的内容如下:
    @Target(value={TYPE,METHOD})
    @Retention(value=RUNTIME)
   public @interface Interceptors{
public Class[] value();
}
       @Interceptors可以用在类级别,也可以用在方法上,用在类级别上,就代表整个类的所有方法在被调用的时候都会让拦截器的方法被调用,而用在method上,则只有该方法的调用之前会让拦截器的方法被调用。
       举个例子,HelloWorldBean实现IHelloWorld的业务接口,有两个方法SayHello1()和SayHello2(),拦截器打印出哪个方法被调用。
       @Interceptors(HelloInterceptor.class)
       @Stateless
       public class HelloWorldBean implements IHelloWorld{
                public void SayHello1(){
                         .......
                }
                public void SayHello2(){
                         ......
                }
       }


       public class HelloInterceptor{
                //含有AroundInvoke注解的方法就是拦截器方法
                @AroundInvoke
                public Object getMethod(InvocationContext invocationContext) throws Exception{
                         System.out.println("method "+ invocationContext.getMethod().getName() +" invoked");
                          return invocationContext.proceed();
                }
       }


      上面这个例子是将@Interceptors用于类级别的,用于方法级别的时候就对那个特定的方法的调用进行拦截。
        
       其实还可以定义default Interceptor,它可以用来拦截所有bean的所有方法。如下:
   <assembly-descriptor> 
    <interceptor-binding> 
          <ejb-name>*</ejb-name> 
          <interceptor-class> 
              ejb.impl.DefaultInterceptor
        </interceptor-class> 
    </interceptor-binding> 
</assembly-descriptor>   
   
现在问题来了,一个方法被调用的时候,可能会有多个拦截器发生作用(默认拦截器、类级别的和方法级别的),他们的调用顺序是什么的,答案是从大的范围到小的范围。即default interceptor->class interceptor->method interceptor。
     
      对于InvocationContext这个接口,
public interface InvocationContext { 
    public Object getTarget(); 
    public Method getMethod(); 
    public Object[] getParameters(); 
    public void setParameters(Object[]); 
    public java.util.Map<String,Object> getContextData(); 
    public Object proceed() throws Exception; 
} 


   有几个方法需要说明下:
    InvocationContext.proceed() method: This tells the 
container that it should proceed to the next Interceptor in the execution chain or call the 
intercepted business method. On the other hand, not calling the proceed method will bring 
processing to a halt and avoid the business method (and any other Interceptor down the 
execution chain) from being called. 


InvocationContext.getContextData() method:返回的的这个Map可以在整个的interceptor chain中共享,这意味着可以在同一个bean的多个interceptor中共享信息。
【vsomeip3 教程】SOME/IP中间件去抖策略全解析 本文探讨了在SOME/IP中间件中实现Debounce(去抖动)机制的必要性和实现原理。文章首先分析了中间件层进行Debounce的四大动机:多订阅者共享收益、语义显式化、协议噪声屏蔽和入口处背压控制。接着详细阐述了Debounce的底层原理,包括变化检测机制(ignore和mask的应用)、时间门控策略(interval的两种时间基准)以及超时补发机制,并通过表格清晰展示了不同参数组合的效果和适用场景。最后,文章提出了工程落地的具体方法,包括策略选型、ignore/mask的设计方法论以及分层验证调试的实 阅读详情

相关推荐

R语言下载包报错?可能是IE浏览器在搞鬼!手把手教你修复(附CRAN镜像选择指南)

本文深入解析了R语言下载包时常见的网络报错问题,特别是Windows系统中因Internet Explorer代理设置导致的连接失败。文章提供了从重置IE配置、排查防火墙到优化CRAN镜像选择的完整解决方案,并附有详细的配置指南和自动化诊断脚本,帮助用户彻底解决R包安装难题。

weixin_29056781的博客 743

在EJB3中编写拦截器以及如何配置默认拦截器

1.编写拦截器,主要是把进入的类和方法写入日志中 import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HpTracingIntercept

syouketu的专栏 1053

雷电模拟器+Google Play服务配置全指南:从安装到定位问题解决

本文详细介绍了雷电模拟器配置Google Play服务的全流程,包括版本选择、组件安装、定位服务调试及网络问题排查。针对安卓开发者的常见挑战,提供从基础到高级的解决方案,帮助优化测试环境稳定性与定位精度。

weixin_30399821的博客 1236

EJB中的拦截器--注解方式

引言 拦截器可以监听程序的一个或所有方法。拦截器对方法调用刘提供了细粒度控制。可以在无状态回话bean、有状态回话bean和消息驱动bean上使用它们。拦截器可以使同意bean类中的方法或是一个外部类。 这里的拦截器的实现,是为了之后的EJB+AOP做的准备,实现EJB中的AOP,我觉得可以有两种方式:一种为注解方式,一种为依赖注入的方式。 实现: 创建服务

邱慕夏 没有比脚更长的路,没有比人更高的山 1332

微信小程序地图开发避坑指南:腾讯地图API从配置到实战(附完整代码)

本文详细解析微信小程序中腾讯地图API的开发实践,从基础配置到高级功能实现,涵盖地图显示、地点搜索、路线规划等核心功能,并提供完整代码示例和常见问题解决方案,帮助开发者高效避坑。特别针对JavaScript SDK和map组件的使用进行了深度优化指导。

weixin_33725722的博客 486

jmeter5.4.1 使用案例

jmeter主要用于接口压力测试,模拟海量请求并发访问接口 1.下载jmeter https://jmeter.apache.org/download_jmeter.cgi 2.启动jemter 双击即可 3.配置jmeter 1.先更改语言 2.创建线程组 配置线程执行规划 3.创建http请求默认值 4.创建http请求 5.创建http信息头管理器 指定 Content-Type:application/json 6.创建响应断言 7.创建察看结果数 直接点击 执行 按.

SpringHASh的博客 1222

EJB3.0笔记

转帖自 http://blog.sina.com.cn/s/blog_5016113a0100asqq.html EJB3.0笔记-1 Entity回调和监听器在你执行EntityManager的persist()、merge、remove和find方法时,或者在执行EJB QL查询时,一系列预先定义好的生命周期事件会被触发。Java Persistence规范允许在entity cl

icecityman的专栏 3287

Silvaco TCAD仿真4——DeckBuild实战:从示例库到自定义设计

本文详细介绍了Silvaco TCAD仿真工具DeckBuild的实战应用,从示例库的使用到自定义设计的全过程。通过具体案例和参数修改技巧,帮助用户快速掌握TCAD仿真技术,提升半导体器件设计的效率和精度。特别适合需要从基础入门到进阶操作的工程师和研究人员。

weixin_29284657的博客 434

EJB3.0入门经典(笔记) - 第2章 EJB知识与运行环境设置(2)

Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

GengV - 在Java的世界流浪 1968

成对使用离轴抛物面反射镜的设计

成对使用离轴抛物面反射镜的设计

weixin_72050316的博客 638

R语言使用mlr包创建回归任务、指定回归学习函数为KNN回归模型、网格搜索、交叉验证调节KNN模型的超参数K获取模型最佳的K值、可视化KNN模型的不同K值和MSE指标之间关系图

R语言使用mlr包创建回归任务、指定回归学习函数为KNN回归模型、网格搜索、交叉验证调节KNN模型的超参数K获取模型最佳的K值、可视化KNN模型的不同K值和MSE指标之间关系图

statistics+insight+vista+power 280

JBoss EJB 3.0

JBoss EJB 3.0JBoss EJB 3.0 Reference DocumentationRC6 - PFDTable of ContentsPreface 1. @EJB and 2. @Resource Annotation 3. Entity Configuration Files 3.1. Intro 3.2.

Narci的专栏 3386

解锁RK平台黑科技:DPDK加速与硬件卸载实战

本文探讨了在RK平台上通过DPDK加速与硬件卸载技术构建高性能网络架构的方法。RK平台凭借强大的硬件性能为高并发网络处理提供基础,而DPDK通过用户态驱动、轮询机制等技术绕过内核瓶颈,显著提升数据包处理效率。硬件卸载则将校验和计算等任务交由专用硬件,释放CPU资源。实践案例显示,该方案可使网络吞吐量提升至理论极限,延迟降至5ms以下,CPU利用率降低40%。文章详细介绍了配置步骤、优化方法和常见问题解决方案,并展望了该技术在5G、车联网等新兴领域的应用前景。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1280

EJB3 拦截器(Interceptor)

学习笔记,转自:http://hi.baidu.com/qchen06/item/7f821a79b57b225a0c0a0747

dy_f的专栏 193

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

(EJB3.0学习笔记三)拦截器(Interceptor)

拦截器可以监听程序的一个或所有方法.拦截器对方法调用流提供了细粒度控制.可以在无状态会话 bean,有状态会话 bean 和消息驱动 bean 上使用它们.拦截器可以是同一 bean 类中的方法或是一个外部类. 下面介绍如何在Session Bean类中使用外部拦截器类. HelloChinaBean.java   package com.foshanshop.ejb3.impl;...

Nothing iS ImPossible 193

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

@Interceptor 铪铪铪铪铪铪铪

EJB3 為了可以支援 AOP ( swanky : AOP Presentation - http://www.ice.ntnu.edu.tw/~swanky/presentation/PL_AOP.pdf ) 所以建立了Interceptors 的觀念.不過, 雖然是放在 ejb3 api 的製作之中, 但是他的 package 為 javax.interceptor.*, 換句話說, 未

移动开发与培训 367

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

eclipse + JBoss 5 + EJB3开发指南(15):拦截器方法和拦截器类

本文为原创,如需转载,请注明作者和出处,谢谢!上一篇:eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean一、拦截器方法    EJB3可以通过拦截器对Bean方法进行拦截和覆盖。这有些象AOP中的around。通过AOP的around方法,可以修改被拦截方法的返回值、参数值,甚至可以取消被拦截方法的执行。EJB3的拦截器可以用在无状态

一个被知识诅咒的人 1330

ejb3 小结3

ejb3 小结3 这次小结下拦截器 接口 import javax.ejb.Remote; @Remote public interface IMan { String getName(); void qq(); void mm(); String sayHelp(); } 实现: imp...

weixin_30734435的博客 76

java与java ee_Java EE拦截器

java与java ee 历史 我认为重要的是要看一下Java EE中Interceptor的发展,因为它是从EJB特定的项目开始的,后来又演变成一个单独的规范,现在可供其他Java EE规范扩展,这一事实很简单。 版本1.0 拦截器最初是在EJB 3.0 ( Java EE 5的一部分)中引入的。 拦截器没有专门的规范,但是它们的版本为1.0,并通过简单的注释向托管Bean(POJO)购...

最佳 Java 编程 263

EJB3.0中JNDI的绑定和多通路传输

http://blog.csdn.net/yiboo/article/details/263869 EJB3.0中JNDI的绑定和多通路传输 默认的会话bean会以路径或远程接口的全名绑定到JNDI。你可以通过定义你自己的@org.jboss.ejb3.LocalBinding或@org.jboss.ejb3.remoting.RemoteBinding来修改 本地接口的JNDI

天元喜羊羊的博客 1635

EJB拦截器(Interceptor)

拦截器可以拦截Session Bean和Message-driven Bean的方法调用或生命周期事件。拦截器用于封装应用的公用行为,使这些行为与业务逻辑分离。拦截器可以使同一bean类中的方法或者是一个外部类。比如HelloChinaBeanimport com.foshanshop.ejb3.HelloChina;import com.foshanshop.ejb3.HelloCh

WHW1984的专栏 1842

Jboss Ejb3.0 Interceptor

 Interceptor为拦截器,可以监听程序的整个程序或方法。从多个程序理解问题往往比较容易,我就在自己写的HelloWorld 程序的基础上增加了Interceptor . 有如下几个程序:Hello.java , HelloLocal.java , HelloRemote.java , HelloBean.java, TracingInterceptor.java Client.java重点

rosonsandy的专栏 1016

Java EE EJB拦截器教程和示例

在此示例中,我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义,当您想拦截对EJB方法的调用时,将使用拦截器。 如果为Bean声明一个拦截器,则每次调用该Bean的方法时,该拦截器的一个方法都将拦截该方法。 这意味着执行直接进入了拦截器的方法。 然后,拦截方法可以决定是调用被拦截的EJB方法还是简单地替换它。 您可能会发现上述行为类似于面向...

最佳 Java 编程 400

Interceptor拦截器

拦截器可是拦截session bean 和message – driven bean 的方法调用或生命周期事件。拦截器用于封装应用的公用行为,是这些行为与业务逻辑分离,一旦这些公用行为发生改变,而不必修改很多业务类。拦截器可以是同一bean类中的方法或是一个外部类。

st_linxiaoling的专栏 537

ejb 示例 2018_Java EE EJB拦截器教程和示例

ejb 示例 2018 在此示例中,我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义,当您想拦截对EJB方法的调用时,将使用拦截器。 如果为Bean声明一个拦截器,则每次调用该Bean的方法时,该拦截器的一个方法都将拦截该方法。 这意味着执行直接进入拦截器的方法。 然后,拦截方法可以决定是调用被拦截的EJB方法还是简单地替换它。 您可能会发...

最佳 Java 编程 229

EJB 3.x 拦截器

EJB 3.x 拦截器 拦截器是一种在调用 Enterprise JavaBeans (EJB) 的业务方法或发生 EJB 的生命周期事件时自动调用的方法。 有三种类型的拦截器方法:业务方法拦截器、超时方法拦截器(在 EJB 3.1 中新增)以及生命周期回调拦截器。业务方法拦截器是围绕对某一业务方法的调用来进行调用。超时方法拦截器是围绕对某一 EJB 超时方法的调用来进行调用。生命周期回调

dac55300424的专栏 1037
上一篇: 结束占用端口进程以及windows命令行下杀进程
下一篇: Jboss5的安装配置
evilying
博客等级 码龄16年 35粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值