拦截器是一种拦截业务方法调用或者周期回调事件的方法.一个拦截器方法必须定义在一个bean或者定义在和这个bean有关联的拦截器类中.一个拦截器类,当和这个类相关联的bean中的业务方法或者周期事件被调用时,这个拦截器类的方法既被调用.拦截器可以为session beans和message-driven beans定义.拦截器类可以在和它有联系的bean中用Interceptor来标注.默认的拦截器--应用于所有在ejb-jar文件的session bean和message driven bean.也可以用部署脚本的方法来定义.
同时可以为一个bean定义多个拦截器,如果多个拦截器被调用,那它们被调用的顺序是由他们声明的顺序来决定的.
一个拦截器类必须有一个公共的无参数的构造函数.
拦截器是无状态的,一个拦截器的生命周期并没有事先声明,因为拦截器的共享是跨多线程的.当一个拦截器实例被创建的时候,通过使用相关的enterprice bean的命名上下文来实现依赖注入.
It is possible to carry state acoress multiple interceptor mothod invocation for a single interceptor mothod invocation on a bean in the context data of the InvocationContext object.
拦截器一般通过注释或者部署描述符来配置.