我想创建一个EJB默认拦截器,它对包含一组特定参数的任何业务方法起作用,但不需要完全匹配。有参数集匹配的经典方法,即:
<assembly-descriptor>.
<!-- Method interceptor will apply to sendBookingCancellationMessage for EmailSystemBean -->
<interceptor-binding>
<ejb-name>MyBean</ejb-name>
<interceptor-class>SomeInterceptor</interceptor-class>
<method>
<method-name>overLoadedMethod</method-name>
<method-params>
<method-param>int</method-param>
<method-param>java.lang.String[][]</method-param>
</method-params>
</method>
</interceptor-binding>
</assembly-descriptor>
但是我想要匹配任何采用int和String [] []以及其他任何方法的方法,而不是那两个方法。有人知道是否可以这样做吗?
答案 0 :(得分:0)
在Glassfish v3上,使用通配符值'*'作为方法名称似乎适用于单个bean级别:
<interceptor-binding>
<ejb-name>MyBean</ejb-name>
<interceptor-class>SomeInterceptor</interceptor-class>
<method>
<method-name>*</method-name>
<method-params>
<method-param>int</method-param>
<method-param>java.lang.String[][]</method-param>
</method-params>
</method>
</interceptor-binding>
但是,就我所见,拦截器规范中没有调用此行为,因此可能不应该依赖它。
答案 1 :(得分:0)
无法以标准定义的方式完成。
但是,您可以简单地拦截每个呼叫并自己检查参数类型。