Jboss Seam的注解

jboss seam的注解用于简化xml配置文件,简化代码书写。
@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 注解定义一个“默认角色”。每一个 @role 注解定一个附加角色。name — 上下文变量的名字。scope — 上下文变量的作用域。当没有显式定义作用域时,和上面一样默认取决于组件类型。
@roles@roles({@role(name=user, scope=scopetype.conversation),@role(name=currentuser, scope=scopetype.session)})允许指定多个额外角色。
@bypassinterceptors取消在特定组件或者一个组件方法上的所有***。
@jndiname@jndiname(my/jndi/name)seam查找ejb组件的jndi名。 如果没有显式指定jndi名,seam将使用由 org.jboss.seam.core.init.jndipattern 指定的jndi模式。
@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声明javabean组件或者组件方法在调用结束时不要求状态复制。
@autocreate声明组件将被自动建立,即使客户端不定义 create=true。
用于双向注入的注解下面两个注解控制双向注入。这些属性用于组件实例变量或者属性访问方法中。
@in在每次组件调用开始时,从上下文变量注入此组件属性。如果上下文变量是null,那么一个异常将被抛出。
@in(required=false)在每次组件调用开始时,从上下文变量注入此组件属性。上下文变量可为null。
@in(create=true)在每次组件调用开始时,从上下文变量注入此组件属性。如果上下文变量为null,那么seam实例化这个组件。
@in(value=contextvariablename)显式指定上下文变量的名字,而不再使用注解定义的实例变量名。
@in(value=#{customer.addresses['shipping']})在每次组件调用开始时,用一个jsf el表达式的计算结果来注入组件属性。value — 指定上下文变量名。默认是组件属性名。可选地,指定一个jsf el表达式,放在 #{} 符号中。create — 指定若上下文变量名在所有上下文中均未定义,seam应该创建一个组件作为上下文变量,名字即为所要求的名字。默认为false。required — 指定若上下文变量名在所有上下文中均未定义,seam应抛出异常。
@out在调用结束后注射出seam组件属性到上下文变量。若属性为null,则抛出一个异常。
@out(required=false)在调用结束后注射出seam组件属性到上下文变量。属性可以为null。
@out(scope=scopetype.session)在调用结束后注射出非seam组件属性到指定scope。或者,若没有明确指定scope,则使用此 @out 属性所属组件的scope。(如果此组件是无状态的,则使用 eventscope 。)
@out(value=contextvariablename)显式指定上下文变量名,而非使用注解中指定的实例变量名。value — 指定上下文变量名。默认为组件属性名。required — 指定若注射出时组件属性为null,seam应抛出异常。注意一起使用这些注解相当常见,例如:@in(create=true) @out private user currentuser;下一个注解支持 管理器组件(manager component) 模式,在该模式中一个seam组件管理一些其他将被注入的class实例的生命周期。它在组件的getter方法中出现。
@unwrap指定注解的getter方法返回的对象是被注入的,而非组件实例本身。下一个注解支持 工厂组件(factory component) 模式,在该模式中,一个seam组件负责初始化上下文变量值。 如果出现非faces的request,在渲染response的时候,它用于初始化所需要的状态特别有用。它出现在组件方法中。
@factory@factory(processinstance) public void createprocessinstance() { }说明当上下文变量没有值时,此组件的方法被用来初始化上下文变量值。它用于返回值是 void 的方法。
@factory(processinstance, scope=conversation) public processinstance createprocessinstance() { }声明方法返回一个值,当上下文变量没有值时seam应使用此值初始化命名上下文变量值。它用于返回一个值的方法。 若没有指明scope,则使用 @factory 方法所在组件的scope(除非组件是无状态的,则使用 event 上下文)。value — 指定上下文变量值。若为getter方法,默认

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值