1

仅 JSF 有什么问题?为什么有很多结合JSF和Spring的教程?据我所知,JSF也可以单独用于动态网站吗?

Spring 放在它上面的是什么?

另外,Spring 可以在没有 JSF 的情况下使用吗?

谢谢你。

4

3 回答 3

3

是的,Spring 可以与 JSF 分开使用,用于任何类型的应用程序,而不仅仅是 Web 应用程序。除了它的 web 层 Spring MVC 之外,它带来的功能在很大程度上与 JSF 是正交的。

Spring 最初是作为一个控制反转容器,并作为对旧版本 Java EE 的感知(和实际)复杂性的反应。它带来的大部分内容已被纳入当前的 Java EE 实践。

我会考虑查看 Spring 文档和教程,因为“它是什么”的范围相当大,但包括前面提到的 IoC/DI 容器、Web 层、数据访问层、处理企业集成的几种方法,安全等。

于 2013-05-05T20:07:32.343 回答
2

不要重申其他答案中提到的 Spring 保护伞下的各种子项目,以及与 Spring 不仅可以在 Web 应用程序中使用的机会相关的所有事实,我会回答其他答案未涵盖的部分,并且是它在给定项目中与 JSF 的关系。

JSF 和 Spring 都提供了 DI 框架,尽管前者的托管 bean 被认为是“基本的”。此外,JSF bean 或多或少被设计为服务于表示层。它们不提供与中间层和数据层的“轻松集成”,即它们不是事务性的,不实现声明式安全性,不能远程等。

例如,所有这些特性都是由 EJB 提供的。它们需要完整的应用程序服务器才能运行,因此它们被认为是“重量级”。它们的功能可以通过使用 CDI bean 来补充。

Spring 提供了一个“轻量级”的替代方案,因为普通的 servlet 容器足以让这样的应用程序运行。Spring 提供了一种处理中间层和数据层的方法。对于 JSF 项目,这意味着您将能够轻松实现声明性事务、DAO 支持等。

JSF 当然可以单独使用,但是样板代码确实容易出错,必须自己处理。不过,对于小型应用程序来说,这可能就足够了。

最后,可以或多或少地将 Spring 核心视为 Web 应用程序中 EJB 的替代方案。

于 2013-05-05T20:37:46.787 回答
2

Spring 不仅仅是一个 Web 框架。Web 框架(Spring MVC)只是 Spring 的一部分。Spring 也是一个IoC 容器,并且有很多支持库,用于数据库访问、安全性、远程处理等等。所以很可能将 Spring 与 JSF 一起使用。

于 2013-05-05T19:58:45.373 回答