[weld] 组合拳Stereotypes
wuhaixing
2010-05-18
CDI规范中定义了stereotype:
很多系统中,架构模式的重用都会产生可重用的bean角色。stereotype允许框架的开发人员集中为这些有共性的bean声明通用的metadata。 stereotype可以把下面这些内容组合到一起:
stereotype还可以指出:
bean可以声明多个stereotype。Stereotype标记可以用于bean类或producer方法、field。 stereotype是一个标记为@Stereotype的注解,这个注解中组合了其他的annotations。比如下面这个stereotype用于标记某个MVC框架中的action类: @Stereotype @Retention(RUNTIME) @Target(TYPE) ... public @interface Action {} 把他放到bean上: @Action public class LoginAction { ... } 当然,上面这个stereotype应该加上些annotations,否则她没多大用处。 |
|
wuhaixing
2010-05-18
stereotype的默认scope
stereotype可以设定beans的默认scope,比如: @RequestScoped @Stereotype @Retention(RUNTIME) @Target(TYPE) public @interface Action {} 如果不爽,action可以自己override这个默认值: @Dependent @Action public class DependentScopedLoginAction { ... } 一般overriding这样一个默认值没多大用,但你得了解stereotype还能组合很多东西呢 |
|
wuhaixing
2010-05-18
stereotype的interceptor
stereotype可以将一组interceptor组合到一起,标记有该stereotype的beans都会受到这组interceptor的“保护”。 @RequestScoped @Transactional(requiresNew=true) @Secure @Stereotype @Retention(RUNTIME) @Target(TYPE) public @interface Action {} 这样你的业务代码里就更见不到transaction和security等技术相关的内容了! |
|
wuhaixing
2010-05-18
用stereotype指定默认name
|
|
wuhaixing
2010-05-18
Alternative stereotypes
|
|
wuhaixing
2010-05-18
stereotype堆
|
|
wuhaixing
2010-05-18
自带的stereotype
|
|
langwangff
2010-05-20
:cry:
|
|
langwangff
2010-05-20
|
|
langwangff
2010-05-20
|