每一个有意义的框架都会有它明确的目标,这个目标往往决定了这个框架的适应面。
Seam的明确目标大概有:
1、整合JSF和EJB3.0;
2、提供简洁的组件管理及双向注入(Bijection);
3、提供声明式状态管理及事务支持;
4、深度整合了企业业务常用的框架(如工作流);
5、提供了一些简化编程的工具及对JSF组件进行了一些扩展;
哪么,这些目标大体决定了Seam适合以下类型的项目开发:
1、业务逻辑复杂,一个业务过程往往有大量的状态需要维护,同时需要有完整的事务支持;
2、业务过程复杂,需要有如工作流的框架来作支撑;
3、要求开发过程快速;
满足这些特点最典型的项目就是基于BS的企业级业务系统。
但,如果项目的特点适合采用Seam,还要看看团队是否达到如下标准:
1、团队在JSF和EJB3上有真正的实践经验(或者愿意花出大的代价来学习这一体系);
2、团队中的技术领头人对Seam框架有着源码级的掌握和理解(其实在真正商业项目开发中想用好开源框架往往都需要满足这一条);