SSH框架简介篇

概述

SSH框架(Struts + Spring + Hibernate)是一种广泛应用的Java企业级开发框架组合,它将Struts、Spring和Hibernate三个优秀的框架有机地结合在一起,提供了一套完整的解决方案,可以帮助开发人员快速构建可扩展、可维护的Java应用程序。
SSH框架是由Struts、Spring和Hibernate三个独立的开源框架组合而成。每个框架都有自己的特点和优势,通过结合使用,可以充分发挥各自的优势,实现更高效的开发和部署。

目录结构

在这里插入图片描述

struts

Struts是一个基于MVC(Model-View-Controller)设计模式的Web应用程序框架。它通过将应用程序的不同层次进行分离,提供了更好的代码结构和可维护性。Struts的核心是一个控制器,负责接收用户请求、路由请求并调度处理程序进行处理,最后将处理结果返回给用户。Struts具有良好的扩展性和易于使用的特点,可以帮助开发人员快速构建功能丰富的Web应用程序。

在项目中对应的struts.xml文件,其可以配置页面显示的内容,比如:

<!--     购物车的action-->
        <action name="cart_*" class="cartAction" method="{1}">
            <result name="addCart">/WEB-INF/jsp/cart.jsp</result>
            <result name="clearCart">/WEB-INF/jsp/cart.jsp</result>
            <result name="removeCart">/WEB-INF/jsp/cart.jsp</result>
            <result name="myCart">/WEB-INF/jsp/cart.jsp</result>
        </action>

在上面示例的代码中,通过“name=“cart_*””进行匹配,并且跳转到对应.jsp页面中。比如在对应的业务模块中实现ActionSupper类。在这里通过调用service层进行逻辑处理。

例如代码块:

public class IndexAction extends ActionSupport {
    //注入一级分类的service
    private CatagoryService catagoryService;
    public void setCatagoryService(CatagoryService catagoryService) {
        this.catagoryService = catagoryService;
    }

    //进入商品的service
    private ProductService productService;

    public void setProductService(ProductService productService) {
        this.productService = productService;
    }

    public String execute(){
        //查询所有一级分类的方法实现
        List<Category> cList=catagoryService.findAll();
        //将一级分类存入道session的范围
        ActionContext.getContext().put("cList",cList);
        //查询热门商品
       List<Product> hList= productService.findHot();
       //保存道值栈中
        ActionContext.getContext().getValueStack().set("hList",hList);
        //查询最新商品:
       List<Product>nList= productService.findNew();
       //保存到值栈中
        ActionContext.getContext().getValueStack().set("nList",nList);
        return "index";
    }
}

这里需要注意的是当创建新的action类后,并且在该类中注入了对应的service,同时在applicationContext.xml文件中注入service,例如:

<bean id="indexAction" class="main.java.cn.itcast.user.action.IndexAction" scope="prototype">
		<property name="catagoryService" ref="CatagoryService"/>
		<property name="productService" ref="ProductService"/>
	</bean>

Spring

Spring是一个轻量级的IoC(Inversion of Control)和AOP(Aspect-Oriented Programming)容器框架。它通过将对象之间的依赖关系交由容器管理,降低了组件之间的耦合度,提高了代码的可测试性和可扩展性。Spring还提供了丰富的功能,如事务管理、安全性等。开发人员可以使用Spring来管理JavaBean、进行依赖注入、实现面向切面的编程等。

public class MyBean {
   private String message;
   
   // Getter and setter methods for message

   public void init() {
      // 初始化方法
   }

   public void destroy() {
      // 销毁方法
   }
}

Hibernate

Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。通过Hibernate,开发人员可以使用面向对象的方式操作数据库,而不必关心底层的SQL语句和数据库细节。Hibernate提供了丰富的持久化功能,包括对象的CRUD操作、事务管理、缓存机制等。通过使用Hibernate,可以大大提高数据访问的效率和灵活性。

Hibernate可以理解为是实体部分。在代码中需要写实体类,并编写对应的hbm.xml文件
例如:实体类

public class OrderItem {
    private Integer itemid;

    private Integer count;

    private Double subtotal;

    private Product product; //外键

    private Order order;}

这里省略了get和set方法
然后在编写对一个hbm.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="main.java.cn.itcast.order.vo.OrderItem" table="orderitem" >
        <id name="itemid">
            <generator class="native"/>

        </id>
        <property name="count"/>
        <property name="subtotal"/>

<!--   关联关系;与订单的关系-->
        <many-to-one name="order" class="main.java.cn.itcast.order.vo.Order" column="oid"/>
<!--关联关系:与商品的关系-->
        <many-to-one name="product" class="main.java.cn.itcast.product.vo.Product" column="pid"/>
    </class>
</hibernate-mapping>

在此文件中体现了表该实体对应的表,以及对应的表关系。

总结

SSH框架(Struts + Spring + Hibernate)是一种广泛应用的Java企业级开发框架组合,它将Struts、Spring和Hibernate三个优秀的框架有机地结合在一起,提供了一套完整的解决方案,用于开发可扩展、可维护的Java应用程序。下面对SSH框架进行总结和分析:

优点:

模块化和分层架构:SSH框架采用MVC(Model-View-Controller)设计模式,将应用程序的不同层次进行分离,有助于代码结构清晰,易于维护和扩展。
高效的开发:每个框架都有自己的特点和优势,通过结合使用,可以充分发挥各自的优势,提高开发效率。
松耦合和可测试性:Spring框架通过IoC容器实现了依赖注入,降低了组件之间的耦合度,提高了代码的可测试性和可扩展性。
数据持久化和ORM支持:Hibernate框架简化了Java应用程序与数据库之间的交互,通过对象关系映射(ORM)实现了面向对象的数据持久化操作,提高了开发效率和灵活性。
Web应用程序支持:Struts框架提供了强大的Web应用程序开发支持,通过控制器、视图和模型的分离,实现了可维护和可扩展的Web应用程序。
灵活性和可扩展性:

SSH框架提供了各种配置选项和扩展点,可以根据项目需求进行定制和扩展,满足不同规模和复杂度的应用程序开发需求。
可以与其他开源框架和工具进行集成,如Spring Boot、Spring Security等,进一步提升开发效率和功能扩展性。
学习曲线和复杂性:

SSH框架相对于单个框架而言,学习曲线可能较陡峭,因为需要掌握并理解三个框架的概念、用法和配置。
框架的复杂性可能增加了系统的复杂性,对于小型项目而言,可能会增加不必要的开销。
社区支持和成熟度:

SSH框架在Java开发社区有着广泛的应用和大量的资料和资源,可以从社区获得丰富的支持和解决方案。
由于SSH框架已经经过多年的发展和演进,因此在稳定性、性能和安全性方面具有较高的成熟度和可靠性。
综上所述,SSH框架通过结合Struts、Spring和Hibernate三个框架的优势,提供了一套完整的解决方案,用于开发可扩展、可维护的Java应用程序。它具有高效的开发、灵活的定制和扩展能力,同时也具备一定的学习曲线和复杂性。对于大型、复杂的企业级应用程序而言,SSH框架是一种强大而可靠的选择。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SSH框架是指Struts+Spring+Hibernate的集成框架,主要用于快速搭建Web应用程序。它将应用程序分为表示层、业务逻辑层、数据持久层和域模块层,以实现结构清晰、可复用、易于维护的Web应用程序。其中,Struts负责MVC分离,控制业务跳转;Hibernate提供持久层支持;Spring作为管理框架,管理Struts和Hibernate之间的关系。 而SSM框架指的是Spring+SpringMVC+MyBatis的集成框架。它是由Spring和MyBatis两个开源框架整合而成,通常用于数据源较简单的Web项目。在SSM框架中,SpringMVC是Spring的一部分,负责处理MVC的分离,而MyBatis则是用于提供持久层支持的框架。 另外还有Struts框架,它与SSH框架类似也是一种开源框架。它使用Servlet和JSP实现,并且基于MVC模型。Struts框架的核心组件包括Action、ActionServlet以及视图部分由多个相互关联的JSP文件组成。它可以有效地减少基于MVC模型的Web应用系统的开发时间,从而控制系统开发成本。 所以,SSH框架和SSM框架都是用于快速开发Web应用程序的集成框架,而SSH框架使用的是Struts+Spring+Hibernate,而SSM框架使用的是Spring+SpringMVC+MyBatis。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [简述SSM框架SSH框架](https://blog.csdn.net/m0_37876935/article/details/93891639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷艳爽faye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值