我要求将一些停放的Java端项目的功能合并到一个新的应用程序中,并试图决定使用某些第三方库,特别是与UI有关。我非常有兴趣从技术领域的成员那里得到一些关于他们对最近的Java框架趋势和经验的观点的反馈。
遗留项目是混合的,所有基于Web的,围绕具有搜索的CRUDable对象的大量业务逻辑。一个使用内部框架 - 非常快速,可扩展,但具有与内部工作相关的缺点 - 新开发人员的学习曲线等。另一个,Tapestry 5应用程序 - 与XFire / CXF非常强大,极好的集成,用于生成Web服务,快速创建UI,但非Tapestry类型具有良好的学习曲线。第三个是Spring 3应用程序,使用JSP 2.0标记文件作为视图层,其中有一些JQuery用于表示/ ajax。
我非常熟悉Spring,并且在低复杂度和高性能方面非常有效地为用户界面找到标签文件。我最近也结束了一个使用RichFaces 4的项目,该项目很成功,准时进入。我喜欢使用RF / IceFaces等免费提供的丰富用户界面,并注意到JSF在其最新版本中完全退役了JSP。
要切入追逐,限制使用基于组件的UI库,其中明确定义但不可修改的行为(如RF / IF)更适合新应用程序,而不是自己动手解决方案,带有标记文件/ JQuery 。我对后者比较熟悉,但不想在项目的早期阶段采用过时的方法走错路。我想继续使用Spring 3控制器用于RESTful,可收藏的应用程序入口点 - 使用Spring进行IF / RF混合还是JSF方法完全从Spring中删除MVC义务?
如果从Spring中移除MVC义务:
JSF生命周期如何与Spring集成 - 它是自包含的,只是使用IOC来连接Spring服务吗?
是否与IF / RF方法很好地集成以生成Web服务等?
IF / RF对平板电脑/手机有什么样的支持?
完全需要Spring - 托管bean会不会这样做?
答案 0 :(得分:3)
要切入追逐,限制使用基于组件的UI库,其中明确定义但不可修改的行为(如RF / IF)更适合新应用程序,而不是自己动手解决方案,带有标记文件/ JQuery 。
不是一个或另一个。 Java Server Faces是一个基于组件的Web框架,允许在请求和响应上同步服务器和客户端状态,以允许应用程序中的阶段和事件模型之类的事情。许多JSF组件固有地利用jQuery,并通过将它们包装在服务器端行为中来扩展富客户端控件。任何延伸都不是不可修改的行为,只是有一点学习曲线以非常具体的方式定制事物。
JSF目前是Oracle推荐的Java EE Web开发方法。
IF / RF与Spring混合还是JSF方法完全从Spring中删除了MVC的义务?JSF生命周期如何与Spring集成 - 它是自包含的,只是使用IOC来连接Spring服务吗?
JSF本质上是它自己的MVC框架,并且托管属性已经在依赖注入中自己编写了。 Core Spring主要是Depedency Injection,所以人们会认为它们不一致,但令人惊讶的是它们很好地结合在一起。
最新版本的Spring为JSF提供了自己的EL Resolver实现,允许将JSF Managed Beans作为Spring bean处理。这个类甚至可以装回到Spring的旧版本中,我已经完成了,并注意到没有任何问题。
Spring MVC主要基于JSP技术,但它不是Spring的核心部分。如果您不希望提供JSP页面,则只需将其包含在JSF Web应用程序中即可。
是否与IF / RF方法很好地集成以生成Web服务等?
当谈到JSF应用程序中的Web服务时,最好记住JSF不必定义Web应用程序的限制,也不必完整地定义它。 JSF仅仅是JSF页面请求的前端。了解这一点,您的同一个Web应用程序也可以提供自己的基于SOAP或REST的Web服务,或者只是在业务逻辑中的服务器端数据源上处理这些Web服务。另一种方法是在您的页面上从Javascript调用外部Web服务。 JSF中没有任何内容可以阻止您合并HTML,Javascript甚至更新的HTML5技术的任何元素。
IF / RF对平板电脑/手机有什么样的支持?
不确定IF和RF有什么,但我知道Primefaces有一个令人印象深刻的移动应用程序控制集,值得一试。
总是需要Spring - 托管bean会不会这样做?
绝对不需要它。我碰巧喜欢Spring,所以我用它。