Seam的启动过程

了解seam2的人知道,seam是通过在web. xml中配置监听器启动的。注意,本文中的seam是指的seam2,不是seam3.

<listener>
	<listenerclass>org. jboss. seam. servlet. SeamListener</listenerclass>
</listener>

该监听器会做哪些事情呢?看看Gavin King对SeamListener类的描述。

Drives certain Seam functionality such as initialization and cleanup of application and session contexts from the web application lifecycle.

从描述中可以知道SeamListener主要完成应用以及web应用生命周期中的session上下文的初始化和清理工作。

该类实现了ServletContextListener接口,在contextInitialized(ServletContextEvent event)方法内主要初始化生命周期并完成应用的初始化,在contextDestroyed(ServletContextEvent event)方法内结束应用的生命周期。

该类实现了HttpSessionListener接口,主要是用于在生命周期中开始和结束session。

第一步,构造方法里从ServletContext获取一些路径信息:warRoot、warClassesDirectory、warLibDirectory、hotDeployDirectory。

第二步,扫描配置文件完成seam组件的初始化(Initialization的create方法)。 其中包括:添加命名空间、初始化组件、初始化Properties、初始化jndi信息。这一步,其实主要是读取一些配置文件,加载seam组件。

  1. 添加命名空间
  2. 从/WEBINF/components. xml加载组件
  3. 从/WEBINF/events. xml加载组件
  4. 从METAINF/components. xml加载组件
  5. 从ServletContext初始化Properties
  6. 从/seam. properties初始化Properties
  7. 初始化jndi Properties
  8. 从system加载Properties

第三步,seam初始化过程(Initialization的init方法)。

  1. ServletLifecycle开始初始化
  2. 设置Application上下文
  3. 添加Init组件
  4. 通过standardDeploymentStrategy的注解和xml组件扫描组件
  5. 判断jbpm是否安装
  6. 检查默认拦截器
  7. 添加特别组件
  8. 添加war root部署、热部署
  9. 安装组件
  10. 导入命名空间
  11. ServletLifecycle结束初始化。启动生命周期为APPLICATION的组件。

如果组件标注为startup,则会构造其实例进行初始化。例如seam于Hibernate的集成,就可以通过此方法初始化Hibernate,对应的组件类为org. jboss. seam. persistence. HibernateSessionFactory。

时间: 2024-07-30 11:02:36

Seam的启动过程的相关文章

HBase源码:HRegionServer启动过程

版本:HBase 0.94.15-cdh4.7.0 关于HMaster启动过程,请参考HBase源码:HMaster启动过程.先启动了HMaster之后,再启动HRegionServer. 运行HRegionServerStarter类启动HRegionServer: package my.test.start; import org.apache.hadoop.hbase.regionserver.HRegionServer; public class HRegionServerStarter

详解php的启动过程

启动, 终止, 以及其中的一些点 在本书中, 你已经多次使用MINIT函数在php加载你扩展的共享库时执行初始化任务. 在第1章"php的生命周期"中, 你还学习了其他三个启动/终止函数, 与MINIT对应的是MSHUTDOWN, 另外还有一对RINIT/RSHUTDOWN方法在每个页面请求启动和终止时被调用. 生命周期 除了这四个直接链接到模块结构的函数外, 还有两个函数仅用于线程环境, 用来处理每个线程的启动和终止, 以及它们使用的似有存储空间.开始之前, 首先将你的php扩展骨架

典型的Liferay Server的启动过程

以下是一个典型的Liferay Server的启动过程: 01.May 29, 2012 3:09:32 AM org.apache.catalina.core.AprLifecycleListener init 02.INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.libra

Linux的开机启动过程简介

开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当 你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关 信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了.在BIOS将系 统的控制权交给硬盘第一个扇区之

linux启动过程故障排除

linux机器的启动过程: 开机自检(BIOS)---> MBR引导---> GRUB菜单---> 加载内核(kernel)---> 运行INIT进程 全部过程可以主要分为两个过程:MBR引导和grub 第一阶段失效: NBR引导区域一共只有446个字节,所以当它出现问题时,grub菜单是没法见到的,所以我们来模拟这个问题 使用如下的命令我们可以将开机是启动的446个字节给覆盖住,重启 此时开机的界面变成这样,硬盘启动不了,说明它要用PXE引导,但是起不来 这时候我们要使用光盘引导

linux下mongodb安装和启动过程

  一 转到目录解压缩下载的压缩包 lamp@QA-clg server$ tar -zxvf mongodb.tgz 二 安装后查看: [lamp@QA-clg mongodb-linux-x86_64-2.4.6]$ cd bin [lamp@QA-clg bin]$ ls bsondump mongodump mongoimport mongorestore mongostat mongo mongoexport mongooplog mongos mongotop mongod mong

Linux系统的启动过程

  一直使用linux系统,却对系统启动过程及系统初始化和各种服务的启动不太清楚.今天终于搞明白整个是怎么一回事了.本来想自己写篇文章,刚好在网上看到一篇不错的介绍,很详细,就直接拿来了. Linux系统的启动过程: BIOS自检 -> grub引导程序 -> 加载内核 -> 执行init -> 启动shell -> login登陆系统 系统启动各个阶段的详细介绍: 一.BIOS自检 计算机在接通电源之后首先由BIOS进行POST自检,然后依据BIOS内设置的引导顺序从硬盘.

WinPE的启动过程是怎样的

  WinPE的启动过程是这样的:grub4dos--setupldr.bin--ntdetect.com--winnt.sif--winpe.is_. setupldr.bin中定义了ntdetect.com和winnt.sif的位置.名称等. 在定义的位置中,任意一个位置能找到ntdetect.com就可以正常执行.所以,如果直接使用maotao的setupldr.bin,可以把NTDETECT.COM放在根目录,也可以放在wxpe目录,当然,如果你想放在别的位置,自己改一下就可以.同样,w

WinPE的启动过程

  WinPE的启动过程是这样的:grub4dos--setupldr.bin--ntdetect.com--winnt.sif--winpe.is_. setupldr.bin中定义了ntdetect.com和winnt.sif的位置.名称等. 在定义的位置中,任意一个位置能找到ntdetect.com就可以正常执行.所以,如果直接使用maotao的setupldr.bin,可以把NTDETECT.COM放在根目录,也可以放在wxpe目录,当然,如果你想放在别的位置,自己改一下就可以.同样,w