- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
seam注解
大部分注解由EJB3.0规范定义。 数据验证通过Hibernate Validator包定义。Seam定义了它自己的注解集合所有这些注解在 org.jboss.seam.annotations 包中定义。
1.?用于定义组件的注解
一组注解让我们定义一个Seam组件。这些注解在组件(component)类中出现。
@Name@Name(componentName)为一个类定义一个Seam组件。所有Seam组件都需要该注解。@Scope
@Scope(ScopeType.CONVERSATION)定义默认的组件上下文。可以定义的值由 ScopeType 枚举:EVENT, PAGE, CONVERSATION, SESSION, BUSINESS_PROCESS, APPLICATION, STATELESS。当范围没有显式定义时,默认的范围取决于组件类型。 对于无状态会话bean,默认是 STATELESS。 对于Entity Bean和Stateful Session Bean,默认是 CONVERSATION。 对于JavaBean,默认是 EVENT。
@Role
@Role(name=roleName, scope=ScopeType.SESSION)允许一个Seam组件绑定多个上下文变量。name — 上下文变量的名字。
scope — 上下文变量的作用域。当没有显式定义作用域时,和上面一样默认取决于组件类型。
@Roles
@Roles({
@Role(name=user, scope=ScopeType.CONVERSATION),
@Role(name=currentUser, scope=ScopeType.SESSION)
})
允许指定多个额外角色。
@BypassInterceptors
@BypassInterceptors取消在特定组件或者一个组件方法上的所有拦截器。@JndiName
@JndiName(my/jndi/name)Seam查找EJB组件的JNDI名。 如果没有显式指定JNDI名,使用由 org.jboss.seam.core.init.jndiPattern 指定的JNDI模式。
@Conversational
@Conversational声明一个对话作用域组件是对话式的,即只有长期运行的对话处于活动状态时,组件中的方法才可以被调用。 @Startup
@Scope(APPLICATION) @Startup(depends=org.jboss.seam.bpm.jbpm)指定某个Application Scope的组件在初始化时立即启动。它主要用于特别的内置组件,用于引导象JNDI,数据源等等关键性的设施。
@Scope(SESSION) @Startup指定某个Session Scope的组件在Session建立时立即启动。
depends — 依赖于,指定必须在此之前启动的命名组件(如果已安装)。
@Install
@Install(false)指定组件是否应该被默认安装。没有@Install注解则表明该组件应该被安装。
@Install(dependencies=org.jboss.seam.bpm.jbpm)
如果所指定的依赖组件被安装,那么该组件才安装。
@Install(genericDependencies=ManagedQueueSender.class)
如果所指定的类的某个实现组件被安装,那么该组件才安装。当无法确定依赖组件的唯一公开名字时,这就有用了。
@Install(classDependencies=org.hibernate.Session)
如果所指定的类在classpath中,那么该组件才安装。
@Install(precedence=BUILT_IN)
指定组件的优先级别。如果具有相同名字的多个组件存在,具有高优先级的才被安装。定义的优先级是(递增排序):
BUILT_IN — 所有内置的Seam组件的优先级别
FRAMEWORK — 用于扩展Seam的框架组件的优先级别
APPLICATION — 应用程序的组件优先级别(默认优先级)
DEPLOYMENT — 在特定部署中重载应用程序组件的组件优先级别
MOCK — 在测试时mock对象使用的优先级别
@Synchronized
@Synchronized(timeout=1000)如果组件被多个客户端并发访问,Seam应该串行化请求。如果一个请求在给定时间段内没有得到组件的锁,将抛出一个例外。 @ReadOnly
@ReadOnly声明JavaBean组件或者组件方法在调用结束时不要求状态复
文档评论(0)