7.2.2. 从扫描过程中排除 Bean
排除过滤器由 bean 归档的 beans.xml 文件中的 <exclude> 元素定义为 子项。默认情况下,排除过滤器处于活动状态。如果 exclude 过滤器包含以下内容,则 exclude 过滤器将变为不活跃:
<scan> 元素的
-
名为
<if-class-available>的子元素及name属性,并且 bean 存档的类加载器无法为该名称加载类,或者 -
名为
<if-class-not-available>的子元素及name属性,bean 存档的类加载器可以为该名称加载类,或者 -
名为
<if-system-property>且带有name属性的子元素,没有为该名称定义系统属性,或者 -
名为
<if-system-property>的子元素带有name属性和 value 属性,没有为该名称定义具有该值的系统属性。
如果过滤器活跃,则该类型不在发现中,且:
- 被发现的类型的完全限定名称与 exclude 过滤器的 name 属性的值匹配,或者
- 被发现类型的软件包名称与 exclude 过滤器的 name 属性的值匹配,或者后缀为 ".*"。
- 被发现类型的软件包名称以 exclude 过滤器的 name 属性值开头
例 7.1. 示例: beans.xml 文件
注意
使用 @Vetoed 标注 Jakarta EE 组件是安全的,防止它们被视为 Bean。事件不会触发标有 @Vetoed 的 任何类型,也不会在标有 @Vetoed 的软件包中触发。如需更多信息,请参见 @Vetoed。