`

SSH组合方案四:Hibernate.cfg.xml由Spring管理,用到事务,事务在DAO层

阅读更多

在SSH组合方案三的基础上修改为SSH组合方案四

SSH组合方案四:Hibernate.cfg.xml由Spring管理,用到事务,事务在DAO层

***说明:SSH组合方案四就在SSH组合方案三上加了一层,业务逻辑层:com.mengya.service层
其实,我们以前的做法在action中完成了业务逻辑操作.在action中直接调用dao层,
这样action即作为控制器也作为业务逻辑,如在删除操作中,action先要判断有没有外键约束再做删除.
现在action中的删除只调用业务逻辑层com.mengya.service层里的删除方法即可.由业务逻辑层做有没有外键约束检查

1,应先写好包
com.mengya.entity:实本包
com.mengya.dao:DAO接口包
com.mengya.dao.imple实体包
com.mengya.service:业务逻辑接口包
com.mengya.service.imple:业务逻辑实现包
com.megnya.util:uitl包

2,加上Spring支持

3,加上Struts支持

4,加上Hibernate支持

5,由Hibernate创建entity类和DAO
可以在dao中重载一下delete方法,由ID删除对象
由产生的DAO抽出接口来分别把它们分到com.megnya.dao与com.mengya.dao.imple包中

6,从DAO层中抽出可能用到的方法作为接为业务逻辑层的接口,在业务逻辑层实现层调用DAO实现它接口

7,加入Struts中的Action与ActionForm

8,修改struts-config.xml中的action的type值为:org.springframework.web.struts.DelegatingActionProxy作为代理
在struts-config.xml中加上
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
   <set-property property="contextConfigLocation" value="classpath*:applicationContext.xml"/>
   </plug-in>

9,在actionForm中封装BO,在action中写上方法
   在action中就直接调用service层就可以了,而不是调用dao

10,在Spring的applicationContext.xml中配置上action和service

11,发布出错,少了一个包 commons-pool-1.3.jar

12,没有处理gbk问题,在web.xml中可以加在Spring帮我们写好的filter


13,在Spring的applicationContext.xml中配置

<!-- 配置数据源 -->
<bean id="myds" class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName"
    value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
   </property>
   <property name="url"
    value="jdbc:sqlserver://localhost:1433;databaseName=mp">
   </property>
   <property name="username" value="sa"></property>
   <property name="password" value="mengya"></property>
</bean>

<!-- 配置sessionFactory -->
<bean id="sessionFactory"
   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="dataSource">
    <ref bean="myds" />
   </property>
   <property name="hibernateProperties">
    <props>
     <prop key="hibernate.dialect">
      org.hibernate.dialect.SQLServerDialect
     </prop>
    </props>
   </property>
   <property name="mappingResources">
    <list>
     <value>com/mengya/entity/Student.hbm.xml</value>
    </list>
   </property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transacitonManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
   <property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置抽象事务代理,这个bean可以被多个对象继承 -->
<bean id="abstractTranProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
   <property name="transactionManager" ref="transacitonManager" />
   <property name="transactionAttributes">
    <props>
     <prop key="save*">PROPAGATION_REQUIRED</prop>
     <prop key="delete*">PROPAGATION_REQUIRED</prop>
     <prop key="merge*">PROPAGATION_REQUIRED</prop>
     <prop key="*">readOnly</prop>
    </props>
   </property>
</bean>

<!-- 这里的DAO是目标对象 -->
<bean id="StudentDAO" class="com.mengya.dao.imple.StudentDAO">
   <property name="sessionFactory">
    <ref bean="sessionFactory" />
   </property>
</bean>

<!-- 代理DAO -->
<bean id="StudentDAOProxy" parent="abstractTranProxy">
   <property name="target" ref="StudentDAO"/>
</bean>

<!-- 配置service 将dao注入service中 -->
<bean id="stuservice" class="com.mengya.service.imple.Stuserviceimple">
   <property name="studao" ref="StudentDAOProxy" />
</bean>

<!-- action中指向代理对象 -->
<bean name="/stu" class="com.mengya.struts.action.StuAction">
   <property name="stuservice" ref="stuservice" />
</bean>

OK....

分享到:
评论

相关推荐

    JavaEE spring和Hibernate整合(没有hibernate.cfg.xml)

    但在Spring中,我们可以利用Spring的`LocalSessionFactoryBean`替代`hibernate.cfg.xml`,将Hibernate的配置信息整合到Spring的配置文件中,这样可以更好地实现依赖注入和管理。 1. **Spring配置Hibernate** - 在...

    SSH三大框架整合 struts2(使用xml配置)+hibernate(使用xml配置)+spring(使用xml配置)

    SSH是Java Web开发中的三个重要框架,分别是Struts2、Hibernate和Spring,它们共同构建了一个强大的MVC(Model-View-Controller)架构。本项目整合了这三个框架,并使用XML配置来管理各个组件,实现了基本的CRUD...

    SSH整合方式二:将hibernate的配置交给Spring管理

    SSH整合是Java Web开发中常见的技术栈组合,主要包括Struts2、Hibernate和Spring三大框架。在实际项目中,为了提高代码的可维护性和解耦,通常会将Hibernate的配置交给Spring来管理。这种方式有助于实现数据访问层...

    基于IDEA的SSH项目之五:集成Hibernate--程序包

    接着,我们需要在Spring的配置文件(如:applicationContext.xml)中声明Hibernate的SessionFactory和事务管理器。添加以下代码: ```xml &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate5....

    ssh.rar_site:www.pudn.com_ssh整合源码_ssh框架源码_ssh项目

    在SSH中,Spring主要负责管理对象(如Service、DAO)的生命周期,提供依赖注入,以及事务管理。Spring的AOP模块可以方便地实现跨切面的关注点,如日志、安全控制等。 3. **Hibernate**:Hibernate是一个对象关系...

    实用SSH框架,用Spring来管理hibernate.

    项目可能包含了struts、hibernate和spring的相关配置文件,如struts.xml、hibernate.cfg.xml和applicationContext.xml,以及Action类、DAO层和实体类等源代码。 在实际开发中,我们可以通过这个基础框架进行扩展,...

    ssh.rar_Action!_service dao_ssh action_ssh com.dao_ssh dao

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的Web应用程序。在这个“ssh.rar”压缩包中,我们看到的“Action!”、“Service DAO SSH Action”以及“SSH Com DAO ...

    SSH 框架 struts-2.3.34 spring4.3.12 hibernate5.0.12

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了一种高效且强大的方式来构建企业级应用,它整合了模型-视图-控制器(MVC)设计模式、依赖注入(DI)...

    Struts2_0+spring2_0+hibernate3_1.zip_site:www.pudn.com_spring_ss

    通常,一个SSH集成的项目会包含Web应用相关的配置文件(如struts.xml、spring-servlet.xml、hibernate.cfg.xml等)、Java源代码(Action、Service、DAO、实体类等)、视图资源(JSP页面)以及数据库脚本等。...

    SSH项目(spring+hibernate+struts2)

    SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    在sshdemo这个文件夹中,可能包含的文件有struts-config.xml、spring-beans.xml、hibernate.cfg.xml、数据库脚本、Action类、DAO接口及其实现、服务类、以及相关的JSP页面等,这些都是SSH整合用户注册功能的关键组成...

    ssh 整合 struts hibernate spring

    SSH整合是Java开发中一种常见的技术栈组合,它包含了三个主要的开源框架:Struts、Hibernate和Spring。这种集成能够构建出高效、可维护且松耦合的企业级Web应用程序。 Struts是MVC(Model-View-Controller)设计...

    SSH笔记-Spring整合Hibernate

    SSH(Struts、Spring、Hibernate)是Java Web开发中经典的三大框架组合,它们各自负责不同的职责,协同工作以实现高效、灵活的后端应用。在本笔记中,我们将重点讨论如何将Spring与Hibernate进行整合,以实现数据...

    SpringStrutsHibernate.zip

    在SSH项目中,Spring主要负责控制层和业务层的管理,包括Bean的生命周期管理、事务管理和服务接口的实现。 **Struts框架**是MVC(Model-View-Controller)设计模式的一个实现,主要用于处理HTTP请求和视图的展示。...

    SSH(Struts2.1+Spring2.X+Hibernate3.X)整合,新手必备

    SSH整合是Java Web开发中的一种常见技术组合,指的是Struts2、Spring和Hibernate三大框架的集成。这三种框架分别在表现层、业务层和服务层扮演重要角色,它们的结合能够帮助开发者构建高效、灵活和可维护的Web应用...

    ssh(spring+strut1.x+hibernate)整合完整教程 附带包

    SSH整合是Java Web开发中的一个经典组合,由Spring、Struts1.x和Hibernate三个框架构成。这个整合提供了全面的企业级应用解决方案,涵盖了控制层、业务层和服务数据持久化层的管理。下面将详细讲解SSH整合的主要知识...

    struts2-spring -hibernate.jar

    在Java企业级应用开发中,Struts2、Spring和Hibernate是三个非常重要的开源框架,它们分别专注于MVC(模型-视图-控制器)架构、依赖注入与事务管理以及对象关系映射。这些框架的组合使用,通常被称为SSH(Struts2、...

    struts2 + hibernate3 + spring3 ssh 用户的增删改查

    Struts2、Hibernate3和Spring3是Java Web开发中的三个核心框架,它们组合在一起被称为SSH(Struts2、Spring、Hibernate)集成框架。这个框架体系为开发者提供了强大的模型-视图-控制器(MVC)架构支持,数据持久化...

    SSH(Struts+Spring+Hibernate)三层架构.

    SSH(Struts+Spring+Hibernate)是Java Web开发中常用的一种三层架构模式,它将应用程序分为表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer),以实现清晰的...

    ssh整合(spring+hibernate+ibatis)

    4. **整合iBatis与Spring**:通过Spring的SqlSessionFactoryBean,将iBatis的配置信息加载到Spring容器中,然后可以使用Spring的注解或XML配置来定义Mapper接口,实现DAO层的声明式事务管理。 5. **编写业务逻辑**...

Global site tag (gtag.js) - Google Analytics