基于SSH轻量级框架的整合应用及实例一
使用Struts 架构作为了整个系统的基础框架,它负责了MVC 模型中各层的分离。利用Hibernate 作为系统持久层的底层结构。中间业务逻辑层由Spring 支持。根据需求来提出一个模型,将这些模型采用Java语言实现出基本的Java 对象,然后写出基本的DAO 接口,并给出Hibernate 的DAO 实现,采用Hibernate 架构实现的DAO 类来实现Java 类与数据库之间的转换和访问,然后由Spring 来完成业务逻辑。
在整个SSH 框架组合中,Spring 与Hibernate 的集成处于非常重要的地位,他们构成了整个系统的底层,负责了系统的数据传送与保存。Spring 的轻量级的bean 容器为业务对象。DAO 对象和资源对象提供了IOC 类型的装配能力。Spring 使用一个XML格式的应用配置文件为开发者提供了一种通过解析定制的属性文件来手动管理单实例对象或者工厂对象的选择性。由于Spring 将非***性作为一个重要的目标,因此可以由Spring配置管理的bean 对象均不需要依赖Spring 自有的接口和类就可以通过它们的bean 属性完成配置。
使用Hibernate 的应用中,Spring 的对DAO 对象通常的事务管理用来分离数据访问和事务处理。事务性业务对象不与任何特殊的数据访问或者事务策略绑在一起,从而不影响业务对象的可复用性。 Spring 的HibernateTemplate 类提供了一个简单的方式实现了基于HibernateDAO对象而不必关心如何获得Hibernate 的Session 实例,也不必关心多方参与的事务处理。无需使用try-catch 块,也无需进行事务检查。一个简单的Hibernate 访问方法就完全解决了这些问题。无论是在多个DAO 接口还是在多方事务的情况下,Spring 使得多种DAO 对象无缝地协同工作。
基于SSH框架整全的web应用控制器是按struts-config.xml 文件中的配置来决定业务流的转向的,开发人员在业务流控制方面的主要工作是对strutsconfig.xml 进行配置,struts-config.xml 的部分代码如下:
<!--职工管理#新增工作组 -->
<action-mappings>
<action path="/teamAdd"type="org.springframework.web.struts.DelegatingActionProxy" scope="request"
name="teamForm" validate="false">
<forward name="success" path="/teamAdmin.do" />
<forward name="warning" path="error.pub" />
<forward name="failure" path="error.sys" />
</action>
</action-mappings>
Spring做为系统的中枢,所有的业务逻辑都定义在一个配置文件applicationContext.xml中,其中定义了数据源以及其他业务的服务bean。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/mndpt?useUnicode=true&characterEncoding=GBK">
</property>
<property name="username" value="root"></property>
<property name="password" value="cumt"></property>
</bean>
...
在整个SSH 框架组合中,Spring 与Hibernate 的集成处于非常重要的地位,他们构成了整个系统的底层,负责了系统的数据传送与保存。Spring 的轻量级的bean 容器为业务对象。DAO 对象和资源对象提供了IOC 类型的装配能力。Spring 使用一个XML格式的应用配置文件为开发者提供了一种通过解析定制的属性文件来手动管理单实例对象或者工厂对象的选择性。由于Spring 将非***性作为一个重要的目标,因此可以由Spring配置管理的bean 对象均不需要依赖Spring 自有的接口和类就可以通过它们的bean 属性完成配置。
使用Hibernate 的应用中,Spring 的对DAO 对象通常的事务管理用来分离数据访问和事务处理。事务性业务对象不与任何特殊的数据访问或者事务策略绑在一起,从而不影响业务对象的可复用性。 Spring 的HibernateTemplate 类提供了一个简单的方式实现了基于HibernateDAO对象而不必关心如何获得Hibernate 的Session 实例,也不必关心多方参与的事务处理。无需使用try-catch 块,也无需进行事务检查。一个简单的Hibernate 访问方法就完全解决了这些问题。无论是在多个DAO 接口还是在多方事务的情况下,Spring 使得多种DAO 对象无缝地协同工作。
基于SSH框架整全的web应用控制器是按struts-config.xml 文件中的配置来决定业务流的转向的,开发人员在业务流控制方面的主要工作是对strutsconfig.xml 进行配置,struts-config.xml 的部分代码如下:
<!--职工管理#新增工作组 -->
<action-mappings>
<action path="/teamAdd"type="org.springframework.web.struts.DelegatingActionProxy" scope="request"
name="teamForm" validate="false">
<forward name="success" path="/teamAdmin.do" />
<forward name="warning" path="error.pub" />
<forward name="failure" path="error.sys" />
</action>
</action-mappings>
Spring做为系统的中枢,所有的业务逻辑都定义在一个配置文件applicationContext.xml中,其中定义了数据源以及其他业务的服务bean。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/mndpt?useUnicode=true&characterEncoding=GBK">
</property>
<property name="username" value="root"></property>
<property name="password" value="cumt"></property>
</bean>
...
<!-- 创建事务管理类 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 创建用户事务代理类 -->
<bean id="teamDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="TeamDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="modify*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="get">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 创建用户事务代理类 -->
<bean id="teamDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="TeamDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="modify*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="get">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
转载于:https://blog.51cto.com/4925054/884310