Java框架选择问题

我们确实有许多Java可用的框架。 Struts,Swing,JSF 2.0,Spring等按优先级使用。 实际上,我不知道它们有多少!

但是,由于我对Java更新,甚至在他们的架构之后学习,我无法决定哪个框架可以用于什么类型的项目!

另外,我对Spring + JSF等框架的混合使用感到困惑。 它有什么好处?

令我困惑的另一件事是关于市场上可用的UI组件。 就像,我们有Primefaces,Ice-faces,MyFaces,Rich-faces。 他们可能支持也可能不支持内置的AJAX。 它们也可能包含一些错误。 什么是Framework + UI组件的最佳选择,可以直接为任何项目提供最佳的解决方案?

我们确实有许多Java可用的框架。 Struts,Swing,JSF 2.0,Spring等按优先级使用。 实际上,我不知道它们有多少!

Swing不是一个基于Web的框架。 这是一个桌面UI框架。 你可能会对Spring MVC感到困惑。

所有这些框架都可分为两种:

  1. 基于请求的MVC框架(Struts,Spring MVC)。
  2. 基于组件的MVC框架(JSF,Wicket)。

基于组件的MVC框架被视为基于请求的MVC框架的进一步发展。 如果您想要更多抽象(即基本上最终得到视图和模型),请选择基于组件的MVC框架。 如果您想要更多地控制控制器部件,请选择基于请求的MVC框架。

另见

  • Struts2或JSF
  • 基于组件与基于请求的Java框架
  • 现在选择Java Web框架

但是,由于我对Java更新,甚至在他们的架构之后学习,我无法决定哪个框架可以用于什么类型的项目!

作为个人观点,请选择JSF 2.0。

另见

  • Sun JSF 2.0教程
  • Coreservlets JSF 2.0教程
  • 简单的JSF 2.0 CRUD示例

另外,我对Spring + JSF等框架的混合使用感到困惑。 它有什么好处?

Spring更像是一种注入(反转控制)框架。 有人可能会说,它是EJB的替代品。 Spring MVC是一个基于请求的框架。

也可以看看:

  • 维基百科:控制倒置
  • spring与其他人

令我困惑的另一件事是关于市场上可用的UI组件。 就像,我们有Primefaces,Ice-faces,MyFaces,Rich-faces。 他们可能支持也可能不支持内置的AJAX。 它们也可能包含一些错误。 什么是Framework + UI组件的最佳选择,可以直接为任何项目提供最佳的解决方案?

MyFaces是另一个JSF 实现 ,对于残余,你只提到了JSF组件库。 这些意味着 JSF实现之上使用。 选择哪一个取决于哪一个最适合您的function要求(换肤性,可吸收性,增强性等)。

作为个人观点, PrimeFaces 2.0看起来最好。

也可以看看:

  • JSF实现和组件库之间有什么区别
  • JSP / Servlet / JSF之间有什么区别

没有银弹。

如果您不能选择一个,请让您的软件架构师根据您的需求选择它。 或者你必须玩所有这些。

有各种问题的框架。

JSF是一个Web框架(或更好的Web框架API),它基于Servlets / JSP并为您处理Web-Frontend,而Spring是一个框架,用于配置应用程序并将应用程序组件连接到正在运行的应用程序。

因此,您可以构建使用JSF Framework创建Web-UI并与用户交互的小组件,使用Hibernate存储和检索数据库中的数据,并将它们与Spring绑定在一起,以创建完整的Web应用程序。

由于JSF只是一个API,你需要一个实现,比如IceFaces。 如果您清楚地遵循规范,则可以轻松替换实施。 因此,您可以在不重写完整应用程序的情况下从IceFaces切换到MyFaces。

对。 看起来问题是关于一切。 特别是它提到了Struts和Swing而不是逗号。 Swing我肯定也是一个远程工作,但这是许多非Web UI框架之一。 还有ORM框架和许多其他类型的。 我们可以调用EJB和Spring框架吗? 我打赌我们可以。 不好的是,虽然在直观的层面上我们可能经常告诉某些东西是否是一个框架,但我从来没有看到任何关于软件框架的定义。 在大约50%的案例中,我们讨论的是Web框架,如Struts,JSF,Wicket,Velocity,HybridaJava或Spring的MVC部分。 大约有50个Java Web框架,它们的性质和价值都非常不同,但比较它们确实令人头疼。 最近我注意到一个关于wickipedia的Web框架的新页面。 方式已经过期,但现在很好。 该表有一个很好的开始comarisons。