`
andrew.yulong
  • 浏览: 172691 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2.0 hibernate3.0 spring2.0 集成开发(一)

阅读更多

    由于公司原因,最近开始搞起来struts2.0 spring2.0 hibernate3.0,以前项目是struts1.X jdon ibatis.      hibernate和spring以前都接触过,不过那时还在学校,东西在就已经还给老师了。最近开始在网上找各种资料。加上以前的一点基础,算是问题不 大。
    先来说说struts2。0。这个框架给我的第一映象是,无非是一个现实层的框架,应该没什么很重要。可是慢慢深入后发现,struts2.0确实比起 struts1.0要进步不少。而且更加接近web2.0了。很不错。hibernate是我一直都很喜欢的持久层框架,嘿嘿。因为sql一直都不好,嘿 嘿。在就是业务层了。spring可以说是我一直都很深入去研究的一个框架。这回有机会也很好。     
     好了,说了这多废话,我们开始第一节的内容吧.    第一节嘛,首先帮大家配置配置环境啦。让大家有个感性的认识。先说道配置环境,首先谈到这3个框架所需的jar吧,为了避免大家去各个官网去下,我准备把这3个框架所需要的 jar打包传到csdn的,可是大小超过了10M传不上去,大家还是去下吧....
    在来介绍一下这3个框架用的配置文件。

  • applicationContext.xml这是spring的配置的文件(用来配置bean和数据库的配置)
  • struts.xml 和struts1的配置文件差不多,用来负责action的配置
  • struts.properties 这个文件大家应该比较陌生,这是用来配置struts在运行时的一些参数
  • web。xml这不要说吧。

    需要说明的一点就是这里没有hibernate的配置文件,因为已经集成到spring的配置文件里面去了。

  •     这里先从web.xml开始说起吧,他就像是房子的地基。不可或缺,这个文件没什么好说的,大家注意下里面的注释就可以了。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    >
        
    <display-name>ASK123</display-name>
        
    <!-- 用来加载spring的配置文件 -->
        
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>
                /WEB-INF/applicationContext.xml
            
    </param-value>
        
    </context-param>
        
    <context-param>
            
    <param-name>log4jConfigLocation</param-name>
            
    <param-value>/WEB-INF/log4j.properties</param-value>
        
    </context-param>
        
    <listener>
            
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        
    </listener>
        
    <listener>
            
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        
    </listener>
        
    <filter>
            
    <filter-name>encodingFilter</filter-name>
            
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            
    <init-param>
                
    <param-name>encoding</param-name>
                
    <param-value>UTF-8</param-value>
            
    </init-param>
        
    </filter>
        
    <!-- z这里要特别注意,这里是在加载struts的核心类FilterDispatcher -->
        
    <filter>
            
    <filter-name>struts2</filter-name>
            
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        
    </filter>
        
    <filter-mapping>
            
    <filter-name>struts2</filter-name>
            
    <url-pattern>/*</url-pattern>
        
    </filter-mapping>

        
    <welcome-file-list>
            
    <welcome-file>login.jsp</welcome-file>
        
    </welcome-file-list>
    </web-app>
  • 我们在来看看spring的配置文件。这个文件用来处理hibernate的一些数据库配置和管理bean
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

        
    <bean id="propertyConfigurer"
            class
    ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            
    <property name="locations">
                
    <list>
                    
    <!-- 这里面我把连接数据库的参数封装到了datasource.properties这个文件里 -->
                    
    <value>classpath:datasource.properties</value>
                
    </list>
            
    </property>
        
    </bean>
        
    <!-- 从datasource.properties这个文件获得参数 -->
        
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"
            dependency-check
    ="none">
            
    <property name="driverClass">
                
    <value>${datasource.driverClassName}</value>
            
    </property>
            
    <property name="jdbcUrl">
                
    <value>${datasource.url}</value>
            
    </property>
            
    <property name="user">
                
    <value>${datasource.username}</value>
            
    </property>
            
    <property name="password">
                
    <value>${datasource.password}</value>
            
    </property>
            
    <property name="acquireIncrement">
                
    <value>${c3p0.acquireIncrement}</value>
            
    </property>
            
    <property name="initialPoolSize">
                
    <value>${c3p0.initialPoolSize}</value>
            
    </property>
            
    <property name="minPoolSize">
                
    <value>${c3p0.minPoolSize}</value>
            
    </property>
            
    <property name="maxPoolSize">
                
    <value>${c3p0.maxPoolSize}</value>
            
    </property>
            
    <property name="maxIdleTime">
                
    <value>${c3p0.maxIdleTime}</value>
            
    </property>
            
    <property name="idleConnectionTestPeriod">
                
    <value>${c3p0.idleConnectionTestPeriod}</value>
            
    </property>
            
    <property name="maxStatements">
                
    <value>${c3p0.maxStatements}</value>
            
    </property>
            
    <property name="numHelperThreads">
                
    <value>${c3p0.numHelperThreads}</value>
            
    </property>
        
    </bean>
        
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            
    <property name="dataSource">
                
    <ref local="dataSource" />
            
    </property>
            
    <!-- 加载hibernate的hbm.xml文件这个文件用映射表和model之间的关系 -->
            
    <property name="mappingResources">
                
    <list>
                    
    <value>net/ask123/ecommerce/domain/User.hbm.xml</value>
                
    </list>
            
    </property>
            
    <property name="hibernateProperties">
                
    <props>
                    
    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                    
    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                    
    <prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>
                    
    <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>
                
    </props>
            
    </property>
        
    </bean>
        
    <!-- 配置事务管理器bean,使用HibernateTransactionManager事务管理器 -->
        
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            
    <!-- 为事务管理器注入sessionFactory" -->
            
    <property name="sessionFactory" ref="sessionFactory" />
        
    </bean>
        
    <!-- 配置事务拦截器Bean -->
        
    <bean id="transactionInterceptor"
            class
    ="org.springframework.transaction.interceptor.TransactionInterceptor">
            
    <!-- 为事务拦截器bean注入一个事物管理器 -->
            
    <property name="transactionManager" ref="transactionManager"></property>
            
    <property name="transactionAttributes">
                
    <!-- 定义事务传播属性 -->
                
    <props>
                    
    <prop key="insert*">PROPAGATION_REQUIRED</prop>
                    
    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    
    <prop key="save*">PROPAGATION_REQUIRED</prop>
                    
    <prop key="add*">PROPAGATION_REQUIRED</prop>
                    
    <prop key="remove*">PROPAGATION_REQUIRED</prop>
                    
    <prop key="delete*">PROPAGATION_REQUIRED</prop>
                    
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                    
    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                    
    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
                    
    <prop key="change*">PROPAGATION_REQUIRED</prop>
                    
    <!-- <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> -->
                
    </props>
            
    </property>
        
    </bean>
        
    <!-- 定义BeanNameAutoProxyCreator -->
        
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
            
    <!-- 指定满足哪些bean自动生成业务代理 -->
            
    <property name="beanNames">
                
    <!-- 需要自动创建事务代理的bean -->
                
    <list>
                    
    <value>userService</value>
                
    </list>
                
    <!-- 其它需要自动创建事务代理的bean -->
            
    </property>
            
    <property name="interceptorNames">
                
    <list>
                    
    <value>transactionInterceptor</value>
                    
    <!-- 可增加其它的interceptor -->
                
    </list>
            
    </property>
        
    </bean>
    </beans>
  • 往下就是struts。xml了这个文件和以前的struts的配置文件差不多
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd" 
    >
    <struts>
        
    <package name="" namespace="" extends="struts-default">
            
    <!-- 配置一个action -->
            
    <action name="login" class="loginAction">
                
    <!-- 这里的type指的是模板,默认是jsp -->
                
    <!--  这里的意思是登录成功后跳转到 /index.jsp 页面 -->
                
    <result name="success">
                    
    <param name="location">/welcome.jsp</param>
                
    </result>
                
    <!--  登录失败后跳转到 /error.jsp 页面 -->
                
    <result name="error" type="dispatcher">
                    
    <param name="location">/error.jsp</param>
                
    </result>
                
分享到:
评论
2 楼 hongshenghome 2009-03-18  
请问怎样向多个action配置事物啊.spring1.2中可用事物模板,不知道spring2.x呢?
1 楼 hongshenghome 2009-03-18  
不错!支持你!!!

相关推荐

    struts2.0 spring2.0 hibernate3.0整合开发快速入门-3

    ### Struts2.0、Spring2.0与Hibernate3.0整合开发快速入门知识点解析 #### 一、Struts2.0与Hibernate3.0整合基础 **知识点1:Struts2.0简介** - **定义**: Struts2是Apache基金会下的一个开源项目,它是一个基于...

    struts2.0+spring2.0+hibernate3.0

    Struts2.0、Spring2.0和Hibernate3.0是Java Web开发中经典的MVC框架组合,被誉为SSH(Struts、Spring、Hibernate)框架。这个项目旨在展示如何将这三个框架进行集成,以便在实际应用中实现高效的数据访问和业务逻辑...

    spring2.0 hibernate 3.0 struts1.1 xfire1.2 整合

    总之,Spring 2.0、Hibernate 3.0、Struts 1.1和XFire 1.2的整合是Java Web开发历史上的一个重要组合,展示了如何通过各种工具和框架来构建复杂的分布式系统。尽管这些技术有些已经过时,理解它们的集成原理对于理解...

    struts2.0+spring2.0+hibernate3.0整合开发快速入门-4

    标题与描述均提到了“Struts2.0+Spring2.0+Hibernate3.0整合开发快速入门”,这表明文章旨在介绍如何将这三个框架整合在一起进行企业级Java应用的开发。接下来,我们将深入分析和解释这部分内容所涉及的关键知识点。...

    struts2.0+spring2.0+hibernate3.0中文帮助.chm

    Struts2.0、Spring2.0和Hibernate3.0是Java开发中经典的三大框架,它们的集成使用,通常被称为SSH(Struts2、Spring、Hibernate)架构,为Web应用程序提供了一个强大的、全面的解决方案。这3个CHM文件包含了这三大...

    Struts2.0+hibernate3.0+Spring2.0

    Struts2.0、Hibernate3.0 和 Spring2.0 是经典的 Java Web 开发框架组合,通常被称为“SSH”(Struts2 + Spring + Hibernate)。这个组合为开发人员提供了全面的解决方案,涵盖了从表现层、业务逻辑层到数据访问层的...

    spring2.5+struts2.0+hibernate3.0分页

    本项目基于经典的Java企业级开发框架——Spring 2.5、Struts 2.0和Hibernate 3.0实现了一个分页功能。下面我们将详细探讨这三个框架以及它们如何协同工作来实现分页。 首先,Spring 2.5是IoC(Inversion of Control...

    spring2.5+struts2.0+hibernate3.0例子 下载

    这个"Spring2.5+Struts2.0+Hibernate3.0例子"的压缩包文件,很可能是为了展示如何将这三个框架集成在一起,实现数据持久化、业务逻辑控制和视图呈现的无缝配合。开发者通常会在这个例子中找到配置文件(如web.xml、...

    struts2.0+hibernate3.0+spring2.0整合(2)

    Struts2.0、Hibernate3.0和Spring2.0是Java Web开发中经典的三大框架,它们的整合是企业级应用开发的常见实践。Struts2作为MVC(Model-View-Controller)框架,主要负责处理HTTP请求并调度业务逻辑;Hibernate是一个...

    struts2.0+hibernate3.0+spring2

    Struts2.0、Hibernate3.0和Spring2.0是Java开发中经典的"SSH"组合,也被称为"SSH2"。这个组合是企业级应用开发的常用技术栈,主要用于构建MVC(Model-View-Controller)架构的Web应用程序。下面将详细解释这三个框架...

    struts2.0+Spring3.0实例

    Struts2.0和Spring3.0是两个非常重要的Java Web开发框架,它们在企业级应用中被广泛使用。这个实例教程将引导初学者深入理解这两个框架的集成和使用。 Struts2.0是一个强大的MVC(Model-View-Controller)框架,...

    struts2.0 spring2.5 hibernate3.0

    Struts2.0、Spring2.5和Hibernate3.0是Java Web开发中经典的三大框架,它们各自在应用程序的不同层面提供了强大的支持,并且通过合理的整合,可以构建出高效、灵活的MVC(Model-View-Controller)架构的应用程序。...

    Struts2.0+Spring3.0+hibernate3.2 API(参考手册)

    Struts2.0、Spring3.0和Hibernate3.2是经典的Java企业级开发框架组合,通常被称为SSH(Struts2、Spring、Hibernate)架构。这个API参考手册提供了这三个框架的核心概念、用法和功能的详细说明。 Struts2.0是MVC...

    struts2.0spring2.5hibernate3.0框架整合步骤

    综上所述,通过以上步骤可以有效地将Struts2.0、Spring2.5和Hibernate3.0这三个框架整合在一起,形成一个完整的Web应用程序开发框架。这种整合不仅可以提高开发效率,还能增强应用的可维护性和扩展性。

    spring2.5 struts2.0 hibernate3.1

    标题 "spring2.5 struts2.0 hibernate3.1" 涉及到的是一个经典的Java企业级开发框架组合,通常被称为“SSH”(Spring、Struts和Hibernate)。这个组合在过去的许多年里被广泛应用,为构建高效、可维护的Web应用程序...

    spring2.0+hibernate3.0+struts2.0整合jar包

    这个"spring2.0+hibernate3.0+struts2.0整合jar包"是将这三个框架的特定版本打包在一起,方便开发者快速搭建基于SSH的开发环境。下面我们将详细探讨这三大框架及其整合的关键知识点。 **1. Spring框架(2.0版)** ...

    struts2.0+spring2.0+hibernate3.0整合

    在Web开发中,Struts2、Spring和Hibernate(简称SSH)是一种常见的三大框架整合,用于构建高效、灵活的企业级应用程序。这个整合方案利用Struts2作为MVC框架负责前端展示逻辑,Spring作为依赖注入(DI)和应用上下文...

    spring json dwr struts2.0 hibernate整合

    在您提供的信息中,我们看到一个基于Java的项目,它整合了Spring、JSON、DWR(Direct Web Remoting)、Struts2.0以及Hibernate3.0。下面将详细介绍这些技术及其整合方式。 1. **Spring框架**: Spring是一个开源的...

    Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记

    Struts 2、Spring 2.0 和 Hibernate 3.0 是Java开发中经典的MVC框架组合,它们各自负责不同的职责,共同构建了一个强大的企业级应用架构。在本笔记中,我们将深入探讨这三个框架的整合过程及其核心概念。 **Struts ...

    Struts2.0+Spring2.0+Hiberante3.0

    本项目基于Struts2.0、Spring2.0和Hibernate3.0,提供了SSH2的实践案例,便于开发者学习和理解。 **Struts2.0** Struts2是一个开源的MVC(Model-View-Controller)框架,它是Struts1的升级版,引入了更多现代Web...

Global site tag (gtag.js) - Google Analytics