Java JSF与Spring的集成

Java JSF与Spring的集成,java,spring,jsf,spring-mvc,Java,Spring,Jsf,Spring Mvc,我还没有实现任何代码,我还在为一个新的应用程序设计总体架构,这将是我第一次使用JSF+Spring。 我需要将web服务放在springservicebean(业务逻辑层)前面,因为除了表示层之外,其他应用程序也可以访问这些bean。在为应用程序定义不同的层时,我不确定如何将JSF(表示层)与Spring(此应用程序中的业务层)集成。 我正在考虑定义某种公共层或服务层,以便为JSF和Spring提供粘合代码,但在此之前,我想听听其他人的意见,他们做了什么,或者他们是否使用了其他框架来帮助这个场景

我还没有实现任何代码,我还在为一个新的应用程序设计总体架构,这将是我第一次使用JSF+Spring。

我需要将web服务放在springservicebean(业务逻辑层)前面,因为除了表示层之外,其他应用程序也可以访问这些bean。在为应用程序定义不同的层时,我不确定如何将JSF(表示层)与Spring(此应用程序中的业务层)集成。

我正在考虑定义某种公共层或服务层,以便为JSF和Spring提供粘合代码,但在此之前,我想听听其他人的意见,他们做了什么,或者他们是否使用了其他框架来帮助这个场景的粘合代码(我已经检查了SpringMVC/SpringFaces,但我不确定这是否是我需要的,因为我认为这个应用程序更像是以JSF为中心的,而不是以Spring为中心的,但也许您可以帮助我考虑另一种方法)

提前感谢。

胶水是spring
ELResolver
,您必须在
faces config.xml中配置它:

<application>    
    <!--
        This is the JSF 1.2 ELResolver that delegates to the Spring root
        WebApplicationContext resolving name references to Spring-defined
        beans.
    -->
    <el-resolver>
         org.springframework.web.jsf.el.SpringBeanFacesELResolver
    </el-resolver>
 </application>

org.springframework.web.jsf.el.SpringBeanFacesELResolver

这意味着每个
#{bean.property}
是通过在spring上下文中解析
bean来处理的。

这对JSF 2.0来说是一样的,还是只对JSF 1.2来说是一样的?应该是一样的。但是我不确定,所以试试看。这看起来不错,但是如果我希望我的JSF应用程序尽可能不了解spring呢?如果有一个我可以调用的web服务,我需要使用它吗使用这个SpringBeanFacesELResolver?也许我需要更具体一点,如果以后我决定使用其他东西而不是Spring怎么办?我想结合JSF+Spring,但我想有一个非常松散的集成。然后如果这个“东西”有一个ELResolver,或者很容易编写这样的工具,那么您在集成方面的切换将是一行配置。