`
klxwcx
  • 浏览: 31608 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSF2.0 与Spring 3.0 集成

    博客分类:
  • Jsf
阅读更多
同以前的JSF1.2与Spring2.5集成类似,只是有一些类名的变化。

web.xml 代码如下:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <listener>
        <listener-class> org.springframework.web.context.ContextLoaderListener
            </listener-class>
    </listener>
    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>






Faces-config.xml中加入:


<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
JSF1.2和1.2以前是加入

<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>


Spring 的配置文件就正常配置就可以了。

ApplicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    <!--
        <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="WEB-INF/jdbc.properties" /> </bean>
    -->
    <!-- hibernate sessionFactory -->
    <context:annotation-config/>
    <context:component-scan base-package="cn.xiangyunsoft" />
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="hibernateProperties" value="classpath:hibernate.properties" />
        <property name="configLocations">
            <list>
                <!-- 使用hibernate.cfg.xml配置文件 -->
                <value>classpath:hibernate.cfg.xml
                </value>
            </list>
        </property>
    </bean>
    <!-- 配置事务管理 -->
    <!-- 事务通知类 -->
    <!--
        <bean id="profiler"
        class="cn.xiangyunsoft.business.service.SimpleProfiler"> order
        值可以决定通知的先后顺序 ,与后面的order的值的大小,决定了是先通知再执行,还是先执行再通知 <property
        name="order" value="2" /> </bean>
    -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <aop:config>
        <!-- 此处的IService 是表示对所有实现IService接口的类管理事务 -->
        <aop:advisor
            pointcut="execution(* cn.xiangyunsoft.*.service..*ServiceImpl.*(..))"
            advice-ref="txAdvice" />
        <!--
            加入之后事务不起作用> <aop:aspect id="profilingAspect" ref="profiler">
            <aop:pointcut id="serviceMethodWithReturnValue"
            expression="execution(*
            cn.xiangyunsoft.*.service..*ServiceImpl.*(..))" />
            <aop:after-throwing method="profile"
            pointcut-ref="serviceMethodWithReturnValue" /> </aop:aspect
        -->
    </aop:config>
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <!-- the transactional semantics -->
        <tx:attributes>
            <!-- 以get、find、load开头的方法是只读事务 -->
            <tx:method name="*" read-only="true" />
            <!--<tx:method name="find*" read-only="true" />-->
            <!--<tx:method name="load*" read-only="true" />-->
            <!-- 其他方法是默认,事务隔离级别为:保证一个事务修改的数据提交后才能被另外一个事务读取 -->
            <tx:method name="save*" isolation="REPEATABLE_READ"
                propagation="REQUIRED" />
            <tx:method name="delete*" isolation="REPEATABLE_READ"
                propagation="REQUIRED" />
               
        </tx:attributes>
    </tx:advice>
</beans>




一个注入Spring bean 的 JSF bean 代码如下:


@ManagedBean(name = ClassItemBean.NAME)
public class ClassItemBean {

    public static final String NAME = "classItemBean";

    /*
     *在spring 中配置的service.
     */
    @ManagedProperty(name = "classItemService", value = "#{classItemService}")
    private ClassItemService classItemService;

    public void setClassItemService(ClassItemService classItemService) {
        this.classItemService = classItemService;
    }

    public String hello() {
        System.out.println("hello." + classItemService);
        Object obj = classItemService.get(ClassItem.class, "01");
        System.out.println("obj = " + obj);
        return null;
    }
}
分享到:
评论

相关推荐

    spring3.0MVC中文教材

    - **高度可配置性**: Spring MVC的设计非常灵活,可以轻松地与其他流行Web框架(如Struts、WebWork、JSF和Tapestry)集成,使得开发者可以根据项目的具体需求选择最适合的技术栈。 - **与其他框架的无缝集成**: ...

    spring2.0升级到spring3.0.5的开发包

    Spring 2.0是Spring框架的一个里程碑,它引入了AOP代理、JDBC抽象层、对JSF的支持以及对portlet的集成。然而,随着时间的推移,Spring 3.0.5带来了许多显著的改进和增强: 1. **泛型支持**:Spring 3.0引入了对Java...

    Spring 3.0

    首先,Spring 3.0引入了对Java EE 6的支持,包括对JSF 2.0、JPA 2.0和EJB 3.1等规范的全面支持。这使得Spring框架可以更好地与现代企业级Java环境集成,提供了一个统一的编程模型,降低了开发者的学习曲线。 其次,...

    spring3.0MVC中文教程

    Spring MVC的灵活性体现在它可以与其他流行Web框架如Struts、WebWork、JavaServer Faces (JSF) 和Tapestry无缝集成,允许开发者根据项目需求选择最合适的工具。 Spring MVC框架的架构设计使得每个逻辑和功能组件都...

    Spring3.0 MVC 中文教程.docx

    通过这种方式,Spring3.0 MVC提供了一种灵活且强大的方式来构建现代Web应用程序,它不仅能够与各种视图技术(如JSP、FreeMarker)集成,还能与其他Web框架(如Struts、WebWork、JSF、Tapestry)协同工作,展现出其极...

    Spring3.0MVC中文教程

    - **JPA 2.0支持**:Spring 3.0集成了对JPA 2.0的支持,使得持久层的开发更加高效。 #### 五、Spring 3.0 MVC的配置 为了使用Spring MVC,首先需要配置DispatcherServlet。以下是在`web.xml`文件中配置...

    spring3.0_MVC之中文教程

    4. **多框架集成**:Spring MVC 可以无缝地与其他流行Web框架如 Struts、WebWork、JSF 和 Tapestry 集成,提供更多的选择。 **Spring3.0 MVC 的新特性** 1. **Java 5 支持**:Spring 3.0 引入了对Java 5特性的支持...

    spring3.0jar包及源码

    6. **测试支持**:Spring Test模块提供了单元测试和集成测试的支持,3.0版本增加了对JSF和Portlet的支持,使测试更加全面。 7. **模块化**:Spring 3.0引入了模块化的概念,将框架拆分为多个独立的模块,如Core ...

    spring3.0 MVC 中文教程

    Spring MVC的灵活性使得它可以轻松地与其他流行的Web框架集成,如Struts、WebWork、Java Server Faces (JSF)和Tapestry,这大大增强了其适应性和可扩展性。 Spring MVC的架构以请求驱动,中心组件是`...

    Spring in action 3.0

    5. **Spring与Java EE 6的集成**:Spring 3.0引入了对Java EE 6规范的支持,包括CDI(Contexts and Dependency Injection)、EJB 3.1、JSF 2.0等,使得Spring应用可以更好地融入到Java EE环境中。 6. **RESTful Web...

    精通spring2.0源代码

    6. **Java 5和Java EE 5兼容性**:Spring 2.0全面支持Java 5的新特性,如泛型、枚举、注解等,并且能很好地与Java EE 5规范中的EJB 3.0、JSF等技术结合使用。 通过研究《精通Spring 2.0源代码》提供的源码,我们...

    spring2.0技术手册.pdf

    5. **支持更多的 J2EE 技术**:除了传统的 J2EE 技术之外,Spring 2.0 还增加了对 EJB 3.0、JSF 等新标准的支持。 6. **国际化和资源加载器改进**:Spring 2.0 改进了资源加载器,支持更灵活的国际化配置。 #### ...

    JSF+HIbernate+Spring结合

    - Spring 2.0 - Hibernate 3.0 - JSF 1.1 添加完成后,确保这些JAR文件已经正确地加入到项目的类路径中。 ##### 2. 配置文件设置 接下来需要创建并配置三个核心文件: - **Spring的applicationContext.xml** - *...

    Spring2.0技术手册

    Spring2.0在J2EE环境中提供了强大的支持,包括与EJB 3.0、JPA等技术的无缝集成。 ### Spring与其他技术的整合 - **Spring与Hibernate**:Spring框架可以与Hibernate ORM(对象关系映射)工具无缝集成,提供了一种...

    jsf2(primefaces3)+spring+hibernate案例下载

    【标题】"jsf2(primefaces3)+spring+hibernate案例下载"涉及到的是一个集成开发环境,其中包含了JavaScript Server Faces (JSF) 2.0版本、PrimeFaces 3.0 UI库、Spring框架以及Hibernate ORM工具。这个案例提供了...

    springMVC3.0

    Spring MVC 不仅可以独立工作,还能轻松与其他流行Web框架如Struts、WebWork、Java Server Faces (JSF) 和 Tapestry 集成,提供更加灵活的选择。 Spring MVC 的核心组件是`DispatcherServlet`,它充当前端控制器,...

    spring-framework-3.0.5.RELEASE-dependencies.zip

    在这个版本中,Spring对Java EE 6的支持更加完善,包括对JSF 2.0、JPA 2.0和EJB 3.1的集成。此外,3.0.x系列还引入了Groovy支持,使得开发者可以使用Groovy语言编写Spring配置,增强了代码的可读性和简洁性。 ...

    Struts2,Spring,MySql,正则表达式等各类API帮助文档

    Spring还支持事务管理、数据访问集成、AOP切面编程,以及与各种ORM框架如Hibernate、MyBatis的集成。 MySql是一款流行的开源关系型数据库管理系统,广泛应用于Web应用程序。它支持SQL标准,具有高性能、高可靠性和...

Global site tag (gtag.js) - Google Analytics