7.9. 挪威
在许多系统中,使用架构模式会产生一组重复的 Bean 角色。stereotype 允许您识别此类角色,并声明具有该角色的 Bean 在中央位置的一些常见元数据。
stereotype 封装了以下任意组合:
- 默认范围。
- 组拦截器绑定。
stereotype 也可以指定:
- 所有默认 bean EL 名称的 Bean。
- 所有的 Bean 都是替代的 Bean。
Bean 可以声明零、一或多任。stereotype 是打包了几个其他注释的 @Stereotype
注释。stereotype 注解可应用到 bean 类、制作者方法或字段。
从 stereotype 中继承范围的类可以覆盖该 stereotype,并直接在 bean 上指定范围。
此外,如果 stereotype 具有 @Named
注释,则它所放入的任何 Bean 都具有默认的 Bean 名称。如果 Bean 上直接指定了 @Named
注释,则 bean 可以覆盖此名称。有关指定 Bean 的更多信息,请参阅命名 Bean。
7.9.1. 使用 Stereotypes
无需考虑,注释就会变得模糊不清。此任务向您展示如何使用强制减少杂乱情况并简化代码。
示例:注解过滤器
@Secure @Transactional @RequestScoped @Named public class AccountManager { public boolean transfer(Account a, Account b) { ... } }
定义和使用 Stereotypes
定义 stereotype。
@Secure @Transactional @RequestScoped @Named @Stereotype @Retention(RUNTIME) @Target(TYPE) public @interface BusinessComponent { ... }
使用 stereotype。
@BusinessComponent public class AccountManager { public boolean transfer(Account a, Account b) { ... } }