SCBCD - Interceptores a la XML

(Imagen: Salvador Dalí - Leda Atómica)

Señores, este es el último post de interceptores y no pienso verlos hasta el día del examen. En fin, este post trata sobre la definición de interceptores en nuestro archivo XML favorito: el descriptor de despliegue.

Pero en vez de ponerme a hablar de cada elemento XML (lo que sería aburridísimo), vemos un poco de código:

  • Aquí definimos dos interceptores por defecto para todos los componentes del ejb-jar: MyDefaultIC y MyDefaultIC2

<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>org.acme.MyDefaultIC</interceptor-class>
<interceptor-class>org.acme.MyDefaultIC2</interceptor-class>
</interceptor-binding>
  • Ahora, se aplica el interceptor MyIC al método myMethod del bean EmployeeService. Usamod method-params para identificar el método si es que se encuentra sobrecargado (overloaded... se acuerdan?). Los interceptores de métodos de negocio se invocan después de los interceptores por defecto y de los interceptores de clase.
<interceptor-binding>
<ejb-name>EmployeeService</ejb-name>
<interceptor-class>org.acme.myIC</interceptor-class>
<method-name>myMethod</method-name>
<method-params>
<method-param>java.lang.String</method-param>
<method-param>java.lang.String</mehtod-param>
</method-params>
</interceptor-binding>
  • Aquí definimos dos interceptores de clase para EmployeeService: MyIC y MyIC2. Estos se invocarán en el orden definido, después de los interceptores por defecto.

<interceptor-binding >
<ejb-name>EmployeeService</ejb-name>
<interceptor-class>org.acme.MyIC2 </interceptor-class>
<intercetor-class>org.acme.MyIC2 </intercetor-class>
</interceptor-binding>

NOTA PARA EL EXAMEN: Recordar, porque creo haberlo dicho antes, que una clase interceptora sólo puede definirse UN método around-invoke, UN método pre-construct, UN método post-destroy, UN método pre-passivate y UN método post-activate (y no he puesto UN en mayúsculas por las puras). Esto es contando los interceptores definidos por anotaciones y por descriptor de despliegue.

Publicar un comentario