为什么Spring与JSF一起使用?它提供什么?

时间:2013-05-05 19:52:19

标签: spring jsf

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

Spring最重要的是什么?

另外,没有JSF可以使用Spring吗?

谢谢。

3 个答案:

答案 0 :(得分:3)

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

Spring以Inversion of Control容器开始,并作为对旧版Java EE的感知(和实际)复杂性的反应。它带来的大部分内容已经融入当前的Java EE实践中。

我考虑将Spring文档和教程视为“它是什么”在范围上相当大,但包括上述IoC / DI容器,Web层,数据访问层,几种处理方式企业集成,安全性等。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

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

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

当然,JSF可以单独使用 ,但是真正容易出错的样板代码必须由您自己处理。但是,对于小型应用来说,它就足够了。

最后,Spring核心可以被认为是或多或少,作为Web应用程序中EJB的替代。