SSH 初识框架

本文介绍SSH(Struts+Spring+Hibernate)框架的整合应用,重点讲解了如何利用Spring管理Hibernate的SessionFactory,实现数据持久化操作,并探讨了Struts、Service、DAO等组件之间的协作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


                                     SSH 初识框架



     
很多国家与国家之间事务是通过联合国来调解,SSH有没有这种感觉,当遇到了你之


后,想知道联合国和各国之间是怎样交流的。
   


  在java 中有很多很好的框架,表示层有Struts、JSF等,持久层有Hibernate、EJB


等,将各层的开源框架有机的整合在一起作为软件系统的主体框架,使得系统具有更好


扩展性和可维护性。
  

                                   


                                    

                                      
 


             在Spring的开放性里,spring能与大部分的对象关系映射框架较好的整合。

         Hibernate进行数据持久化操作时,Hibernate的Session接口提供了基本的数据访

问方法,获得Hibernate Session对象要实现的Hibernate的SessionFactory实例。

SessionFactory复制打开、关闭和管理session,为了解决手动创建SessionFactory实

例,使用Spring管理session对象和实现声明式事务管理。那么是如何实现的呢?

     Spring的配置文件ApplicationContext.xml中配置Hibernate对SessionFactory的设

置。源码如下:

<span style="font-size:24px;">
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="dataSource" ref="dataSource">
	<!--{cke_protected}{C}%3C!%2D%2D%20%E9%85%8D%E7%BD%AEhibernate%E7%9A%84%E5%85%B6%E4%BB%96%E7%9A%84%E5%B1%9E%E6%80%A7%20%2D%2D%3E-->
	<property name="hibernateProperties">
	<props>
	<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
	<prop key="hibernate.show_sql">true</prop>
	<prop key="hibernate.format_sql">true</prop>
	<prop key="hibernate.hbm2ddl.auto">update</prop>
	</props>
	</property>
	<!--{cke_protected}{C}%3C!%2D%2D%20%E9%85%8D%E7%BD%AEHibernate%E7%9A%84%E6%98%A0%E5%B0%84%E6%96%87%E4%BB%B6%20%2D%2D%3E-->
	<property name="mappingResources">
	<list>
	<value>cn/itcast/shop/user/vo/User.hbm.xml</value>
	</list>
	</property>
	</property></bean>
 </span>



   从配置文件可以看出,用声明的方式管理SessionFactory时,可以在不同的数据源切

换,持久层服务发生改变,程序代码不需要改变只需改配置文件即可。通过Spring的事

务机制进行统一管理事务管理:

   Spring类似我们之前学习过的MVC,为了让控制器和业务逻辑组件实现分离将Struts

中的Action的实例生成交给Spring容器进行管理不再由Struts负责,Struts只单纯扮演控

制器的角色。Struts的Action交给Spring框架创建,默认是多例的而Spring容器在管理类

的时候默认创建是单例的,单例的方式容易产生线程安全问题所以一定要配置类scope

属性:

在Spring的配置文件中代码:

<pre name="code" class="html"><bean id="userAction" class="cn.itcast.shop.user.action.UserAction" scope="prototype">


</bean>



在Struts的配置文件中:

<action name="user_*" class="userAction" method="{1}">


</action>

   

     还有vo、DAO、Service、Action在系统中她们是如何协调的?

   在开发时我们一般都先设计实体类,这样对象在各层之间进行传递,利用Hibernate


做好领域对象和数据表的映射关系。DAO层是专门独立出来对数据进行持久化,利用


Spring对Hibernate提供DAO支持类HibernateDaoSupport来实现,每个DAO组件对应一个


数据库表。Service层的开发主要是具体业务组件开发,主要用于处理各类业务逻辑。


Action主要是处理Web请求,由Spring进行管理。从上面我们知道了其实Struts其实就是


联合国的角色。





评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值