SSH三大框架整合的流程是怎样走的,spring在三大框架中式怎么的一个流程,hibernate是怎么的一个流程,struts2是怎么的一个流程的,

来源:互联网 发布:抽风散热器 知乎 编辑:程序博客网 时间:2024/05/06 19:27

JAVA SSH 框架介绍

  

SSH 为 struts+spring+hibernate 的一个集成框架,是目前较流行的一种JAVA Web应用程序开源框架。

 Struts

  Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。

  官方地址:http://struts.apache.org

 Spring

  Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IOC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。

  官方地址:spring: http://www.springsource.org

 Hibernate

  Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

  官方地址:http://www.hibernate.org

 在SSH 的组合框架模式中,三者各自的作用

  Struts 是一个很好的MVC框架,主要技术是Servlet和Jsp。Struts的MVC设计模式可以使我们的逻辑变得很清晰,让我们写的程序层次分明。

  Spring 提供了管理业务对象的一致方法,并鼓励注入对接口编程而不是对类编程的良好习惯,使我们的产品在最大程度上解耦。

  Hibernate 是用来持久化数据的,提供了完全面向对象的数据库操作。Hibernate对JDBC进行了非常轻量级的封装,它使得与关系型数据库打交道变得非常轻松。

  以下是SSH架构图:

JAVA <wbr>SSH <wbr>框架介绍
SSH架构图

  Struts负责Web层:

  ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到对应的网页,在Struts-config.xml中定义了<action-mapping>,ActionServlet会加载进来。

  Spring负责业务层管理,即Service:

  Service为Action提供统一的调用接口,封装持久层的DAO,并集成Hibernate,Spring可对JavaBean和事物进行统一管理。

  Hibernate负责持久层,完成数据库的CRUD操作:

  Hibernate有一组hbm.xml文件和PO,是与数据库中的表相对应的,然后定义DAO,这些是与数据库打交道的类。

  在Struts+Spring+Hibernate系统中,对象之间的调用流程如下:

    JAVA <wbr>SSH <wbr>框架介绍

  Struts——>Spring——>Hibernate
  JSP——>Action——>Service——>DAO——>Hibernate


5


web容器启动--》加载spring配置进行初始化。spring配置中引用hibernate文件加载。。加载strusts控制器等等一系列的初始化。。。

客户端发送请求--》strust拦截请求--》相应action处理请求--》service层业务逻辑处理--》hibernate负责数据交换--》返回结果数据--》service层处理结果数据--》action接收请求处理结果--》strust负责回送请求结果到客户端。。。

红色部分为spring在进行一系列的调度。。。如:对bean的管理,事务等等。。。其实就是控制反转,依赖注入。。

SSH三大框架整合的流程是怎样走的

你可以这样试试:

从struts开始,在你的项目里加上struts。
struts的lib包,struts的配置文件,修改web.xml
写一个最简单的例子。 页面表达提交到一个action,action中获取表达信息跳转到另一个页面。
如果你感觉对struts已经有所了解,小例子也调通了,那就加入spring吧。
项目中加spring的包和spring的配置文件。修改web.xml
spring3和struts2整合最简单。只要你项目里引入struts2-sping-plugin-***.jar包就可以了。
这样struts的action就会由spring来管理里。
这时你在struts.xml里配置action的时候class就不要写具体的类了,只要写spring里bean的id就可以了。
好了,spring和struts就整合好了,spring里配置action对应的bean 然后给你的bean注入另一个service bean吧。这样可以验证整合是否成功了。
再接下来就是spring整合hibernate了。
导入hibernate的lib包。hibernate的配置文件。
也可以不用配置文件直接用spring的配置文件。都可以具体你去网上查查。
比较关键的就是 你的dao 这时要继承org.springframework.orm.hibernate3.support.HibernateDaoSupport。
然后spring的配置里

<bean id="mymis"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver">
</property>
<property name="jdbcUrl"
value="jdbc:mysql://127.0.0.1:3306/mymis">
</property>
<property name="user" value="mymis"></property>
<property name="password" value="mymis"></property>
<property name="maxPoolSize" value="10" />
<property name="minPoolSize" value="1" />
<property name="initialPoolSize" value="1" />
<property name="acquireIncrement" value="2" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="mymis" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/tt/db/MenuInfo.hbm.xml</value>
<value>com/tt/db/TableAddInfo.hbm.xml</value>
<value>com/tt/db/TableFieldInfo.hbm.xml</value>
<value>com/tt/db/TableInfo.hbm.xml</value>
<value>com/tt/db/TableListInfo.hbm.xml</value>
<value>com/tt/db/TableQueryInfo.hbm.xml</value>
</list>
</property>
</bean>



然后就是每个dao里都要注入 
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>

要下班了就先说这么多了。
0 1
原创粉丝点击