EJB3的XML Schema第八讲

紧接上文:
<xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
<xsd:element name="security-role-ref" type="javaee:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="security-identity" type="javaee:security-identityType" minOccurs="0"/>
<xsd:element name="query" type="javaee:queryType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="exclude-listType">
<xsd:annotation>
<xsd:documentation>
exclude-listType 指定了一个或多个方法,这些方法被组装者标记为不可调用的。
如果方法权限关系包含了在排除列表中的方法,那么部署这应当将这些方法认为是不可调用的。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="method" type="javaee:methodType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="init-methodType">
<xsd:sequence>
<xsd:element name="create-method" type="javaee:named-methodType"/>
<xsd:element name="bean-method" type="javaee:named-methodType"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="interceptor-bindingType">
<xsd:annotation>
<xsd:documentation>
interceptor-bindingType 元素描述了拦截器类与ejb-jar 中bean 之间的绑定,它包括:
-一个可选的描述.
- ejb-jar 中的ejb 的名字或通配符"*",通配符用于指定拦截器绑定到ejb-jar 中的所有bean 上。
- 一个拦截器类列表,它被绑定到ejb-name 元素的内容上,或拦截器的总体排序规范,这些拦截器定义在给定的层级或层级之上。
- 一个可选的exclude-default-interceptors 元素。如果设置为true,则指定缺省的拦截器不应用到bean-class 和/或业务方法上。
- 一个可选的exclude-class-interceptors 元素。如果设置为true,则指定类拦截器不应用到业务方法上。
- 一个可选的method 元素集合,用于描述方法级拦截器的名字/参数。
使用通配符”*”绑定到所有类上的拦截器是缺省拦截器。另外,拦截器可以被绑定到bean 类(类级别拦截器)或业务方法(方法级别拦截器)级别。拦截器到类上的绑定是递增的。如果拦截器被绑定到类级别和/或缺省级别以及方法级别,那么将同时使用类级别和/或缺省级别以及方法级别。
拦截器元素的语法有四种可能的风格:1.
<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>INTERCEPTOR</interceptor-class>
</interceptor-binding>
将ejb-name 指定为通配符"*" 分配缺省拦截器(应用到ejb-jar 中所有会话和消息驱动bean 的拦截器)。
2.
<interceptor-binding>
<ejb-name>EJBNAME</ejb-name>
<interceptor-class>INTERCEPTOR</interceptor-class>
</interceptor-binding>
这种风格用于指定与指定企业bean 关联的拦截器(类级别的拦截器)。
3.
<interceptor-binding>
<ejb-name>EJBNAME</ejb-name>
<interceptor-class>INTERCEPTOR</interceptor-class>
<method>
<method-name>METHOD</method-name>
</method>
</interceptor-binding>
这种风格用于将方法级别的拦截器与指定的企业bean 建立关联。如果有多个同名的重载方法,那么这个风格的元素指的是拦截器应用到所有的同名方法上。方法级的拦截器只能被关联到bean 类的业务方法上。注意,通配符”*”不能用于指定方法级的拦截器。
4.
<interceptor-binding>
<ejb-name>EJBNAME</ejb-name>
<interceptor-class>INTERCEPTOR</interceptor-class>
<method>
<method-name>METHOD</method-name>
<method-params>
<method-param>PARAM-1</method-param>
<method-param>PARAM-2</method-param>
...
<method-param>PARAM-N</method-param>
</method-params>
</method>
</interceptor-binding>
这种风格用于将方法级的拦截器关联到指定企业bean 的指定方法上。这个风格用于指定同名重载方法中一个单个方法。值PARAM-1 到PARAM-N 是方法入参的Java 类型全称(如果方法没有入参,那么method-params 元素不包含method-param 元素)。数组由数组元素类型指定,类型后跟一到多个方括号对(例如,int[][])。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="ejb-name" type="javaee:string"/>
<xsd:choice>
<xsd:element name="interceptor-class" type="javaee:fully-qualified-classType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="interceptor-order" type="javaee:interceptor-orderType" minOccurs="1"/>
</xsd:choice>
<xsd:element name="exclude-default-interceptors" type="javaee:true-falseType" minOccurs="0"/>
<xsd:element name="exclude-class-interceptors" type="javaee:true-falseType" minOccurs="0"/>
<xsd:element name="method" type="javaee:named-methodType" minOccurs="0"/>
</xsd:sequence>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值