前久写了一贴:"代理模式在Spring+hibernate+struts框架中的应用",引起了比较广泛的讨论,虽然丢砖头的不少,呵呵.
此外在Spring+hibernate+struts框架中,我比较广泛地用到了"适配器模式".故讨论一下.
为了让代码通用,在Spring+hibernate+struts中,我做了个baseDao和baseService类,这两个类是通用的对表维护的操作.这样大多数表维护的代码,只要这两个类就可以了.
当有BUSINESS OBJECT时,从baseService继承产生一个businessServiceIMP类,这时运用"适配器模式",定义IbusinessService接口.
这样就能让接口代码简化.达到了运用适配器模式的目的.
再加上Spring+hibernate+struts框架的优点,可以灵活把DAO层,和SERVICE层的任意类更换掉,相当灵活,举一个Spring+hibernate+struts的配置例子如下:
- <?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
-
- <beans>
- <!-- ========================= Start of PERSISTENCE DEFINITIONS ========================= -->
-
-
<!-- Choose the dialect that matches your "dataSource" definition -->
-
-
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
-
<property name="driverClassName">
- <value>org.gjt.mm.mysql.Driver</value>
- </property>
-
<property name="url">
-
<value>jdbc:mysql:
- </property>
-
<property name="username">
- <value>root</value>
- </property>
-
<property name="password">
- <value></value>
- </property>
- </bean>
-
-
<bean id="mySessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
-
<property name="mappingResources">
- <list>
- <value>oa/pojo/Auth.hbm.xml</value>
- <value>oa/pojo/Card.hbm.xml</value>
- <value>oa/pojo/Fast.hbm.xml</value>
- <value>oa/pojo/Fax.hbm.xml</value>
- <value>oa/pojo/Note.hbm.xml</value>
- <value>oa/pojo/Plan.hbm.xml</value>
- <value>oa/pojo/User.hbm.xml</value>
- </list>
- </property>
-
-
<property name="hibernateProperties">
- <props>
-
<prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
-
<prop key="hibernate.show_sql">true</prop>
-
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
- </props>
- </property>
-
-
<property name="dataSource"><ref bean="myDataSource"/></property>
- </bean>
-
-
-
-
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA); -->
-
<bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
-
<property name="sessionFactory"><ref local="mySessionFactory"/></property>
- </bean>
-
-
- <!-- Base DAO : Hibernate implementation -->
-
<bean id="baseDAO" class="common.spring.dao.BaseDAOImpl">
-
<property name="sessionFactory"><ref local="mySessionFactory"/></property>
- </bean>
-
- <!-- Base primary business object implementation -->
-
<bean id="baseServiceSpring" class="common.spring.service.BaseServiceSpringImpl">
-
<property name="baseDAO"><ref local="baseDAO"/></property>
- </bean>
-
- <!-- Base SERVICE -->
-
<bean id="baseService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
-
<property name="transactionManager"><ref local="myTransactionManager"/></property>
-
<property name="target"><ref local="baseServiceSpring"/></property>
-
<property name="transactionAttributes">
- <props>
-
<prop key="get*">PROPAGATION_REQUIRED,readOnly,-BaseServiceException</prop>
-
<prop key="set*">PROPAGATION_REQUIRED,-BaseServiceException</prop>
-
<prop key="modify*">PROPAGATION_REQUIRED,-BaseServiceException</prop>
-
<prop key="remove*">PROPAGATION_REQUIRED,-BaseServiceException</prop>
- </props>
- </property>
- </bean>
-
-
- <!-- logon primary business object implementation -->
-
<bean id="logonServiceSpring" class="common.spring.service.LogonServiceSpringImpl">
-
<property name="baseDAO"><ref local="baseDAO"/></property>
- </bean>
-
- <!-- logon SERVICE -->
-
<bean id="logonService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
-
<property name="transactionManager"><ref local="myTransactionManager"/></property>
-
<property name="target"><ref local="logonServiceSpring"/></property>
-
<property name="transactionAttributes">
- <props>
-
<prop key="get*">PROPAGATION_REQUIRED,readOnly,-BaseServiceException</prop>
-
<prop key="set*">PROPAGATION_REQUIRED,-BaseServiceException</prop>
-
<prop key="modify*">PROPAGATION_REQUIRED,-BaseServiceException</prop>
-
<prop key="remove*">PROPAGATION_REQUIRED,-BaseServiceException</prop>
- </props>
- </property>
- </bean>
-
- </beans>
分享到:
相关推荐
标题 "spring+hibernate+struts" 指涉的是一个经典的Java Web开发框架组合,也被称为SSH(Spring、Struts和Hibernate)三位一体。这个组合在2000年代中期到后期非常流行,用于构建企业级应用。下面将详细阐述这三个...
在“Spring+Hibernate+Struts”系统中,Hibernate 负责处理数据库操作,将Java对象映射到数据库表,从而避免了繁琐的SQL代码编写。通过 Hibernate,开发者可以轻松地进行数据的增删改查操作,同时支持事务管理和缓存...
Spring + Hibernate + Struts Src源码 QQ:afa1588@qq.com Email: kfu_lufazhan@126.com 博客: www.vipaspx.com 此项目已经获取项目专利,本实例代码仅限于学习和交流之用. 已经获取实例源代码的朋友,请不要进行...
Java开发框架中的Spring+Hibernate+Struts组合,被誉为Java开发的主流体系,具有显著的优势地位。这个框架组合的稳固性体现在其广泛的应用和社区支持,尤其是在企业级JavaEE应用中。Spring作为一款全面的轻量级应用...
简单struts+spring+hibernate搭建,配置,适合初学者
DWR+Struts+spring+hibernate的订货系统,自己添加的dwr功能
《图书管理系统spring+struts+hibernate》是一款基于Java技术栈开发的图书管理软件,其核心框架包括Spring、Struts和Hibernate。该系统利用MySQL作为数据库存储数据,提供了完整的数据库备份,确保了数据的安全性与...
spring+hibernate+struts教程
资源名字:基于JSP+Spring+Hibernate+Struts2+mysql的毕业生离校管理系统设计与实现(源码+文档).zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 包含模块: ...
本项目主要涉及的是Spring、Hibernate和Struts2这三个主流的Java开发框架的整合。它们分别负责不同的职责:Spring作为全能型容器,管理对象和依赖注入;Hibernate是持久层框架,负责数据库操作;而Struts2则是一个...
在Java Web开发中,Spring、Hibernate和Struts2是三个非常重要的框架,它们分别负责不同的职责,共同构建出一个强大的企业级应用系统。这个压缩包包含这三个框架的核心库,为开发者提供了一站式解决方案,方便集成和...
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...
Spring、Hibernate和Struts是Java开发中非常经典的三大框架,它们分别负责控制层、持久层和展示层,常被组合使用以构建企业级Web应用程序。本文将详细介绍这三大框架的整合过程及其关键知识点。 首先,Spring框架是...
网上订餐系统(struts+spring+hibernate).rar 网上订餐设计主要采用采用MYSQL数据库进行数据表的设计,利用JSP的动态生成页面编程技术, 实现了用网络展示餐饮信息、浏览餐饮页面、注册客户、更改客户信息;同时,...
SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
本项目“maven整合spring+hibernate+struts2”就是一个典型的Java Web开发模式,它利用Maven作为项目管理工具,Spring作为核心框架,Hibernate作为持久层解决方案,Struts2作为表现层控制器。以下将详细阐述这些技术...