SEAM的几个的概念

Seam是一个组件化的框架,它可以很方便的,把随意的类发布面向为组件(通过注释Name("name"))。面向组件,这里组件是一个很重要的概念,Seam中深度整合了EJB,但,也可以在非EJB环境下使用。以下是,在SEAM中存在的几种组件。

  1. 无状态的会话BEAN:EJB的Session Bean它用注释@Stateless来做来配置。不能为JSF提供属性,只能做listenter,这里只允许用@in注入及用Component.getInstance()来获得一个实例。
  2. 有 状态的会话BEAN:EJB的Session Bean,用@Stateful来做配置。默认情况下在CONVERSATIO上下文中,线程安全,并发做串行运行,可以用做JSF提供属性,当然也能做 listenter,这里只允许用@in注入及用Component.getInstance()来获得一个实例。
  3. Entity BEAN:实体Bean,可以做对象的持久化,也可以做为组件发布,但在并发情况下性能比较的差,不能被用在无状态的上下文中。
  4. Java Bean:为了在非EJB运行环境下使用。
  5. 消息驱动的Bean:这是EJB中一个重要的Bean,和JMS一起使用。

   
    因为Seam管理着组件的生命周期,所以它有能力对这个组件在生命周期中的几个点进行拦截,一般在架构一个系统时才会用到,我将在下次再深入的去学习他。


    每一个组件都可以有自己的做用域(注释Scope),作用域的定义是放在ScopeType的枚举中,以下是几种作用域。虽然在一般性况下一个组件只有一 个作用域,但也可以通过角色这种方式来定义多种的作用域。每一个有状态的BEAN都有一个可以有生命周期的回调,如@PostConstruct 和 @PreDestroy,在这里也有一个麻烦的地方,那就是有态的Bean都需要一个@remove的注释方法。
  1. STATELESS:无状态的组件
  2. METHOD:这个我不是很理解,以下是英文
    The method context. Each call to a session bean or JavaBean component puts a new        method context onto the stack of method contexts associated with the current thread.    The context is destroyed (and the stack popped) when the method returns.
  3. EVENT:每一次request请求
  4. PAGE:同一个页面的多次请求,序列化请求到页面。
  5. CONVERSATIO:很重要的特性可是没有办法理解
  6. SESSION:很基本不解释了
  7. APPLICATION:基本概念
  8. BUSINESS_PROCESS:在一个流程会话,可以在多个用户中流

     双向注入,在SEAM中是一个很重要的概念,我看了文档,但没能完全理解双向注入的概念,在SEAM中可以将上下文中的组件注入到组件中这叫@IN注入, 还可以反向的注回上下文中叫做@out。IN的注入比较好理解,和IOC有点相似,只是因为这个组件都是有状态的,所以,他注入的组件,只有在触发这个组 件时才发生注入,但是out注入,我就没有办法理解了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值