前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >详说SSH框架和SSM框架搭建以及两者之间不一样之处

详说SSH框架和SSM框架搭建以及两者之间不一样之处

作者头像
@派大星
发布2023-06-27 17:16:06
发布2023-06-27 17:16:06
5600
举报
文章被收录于专栏:码上遇见你码上遇见你

SSH框架:

struts+spring+hibernate的一个集成框架

SSM框架:

(SpringMVC+Spring+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)

SSH搭建:

请求流程:StrutsPrepareAndExecuteFilter-->ActionMapping-->Action-->Result-->jsp

1.pom.xml引入struts2-core、struts2-convention包

2.在web.xml配置StrutsPrepareAndExecuteFilter

3.编写HelloAction

包路径必须为xxx.action下,类命名为XxxAction格式

4.配置Action+Result

注解配置

以前xml配置

5.编写hello.jsp(在src/main/webapp下)

Struts2的实现原理:

SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate

负责持久化层.

SSM搭建:

请求流程:DispatcherServlet-->HandlerMapping-->Controller-->ViewResolver-->jsp

先集成Spring和Mybatis:

1.建立一个项目,导入jar包(ioc,aop,mybatis,mybatis-spring,dao,orm,

连接池,驱动)。拷贝配置文件到src下。

2.编写实体类。

3.编写sql定义文件,比如:(根据id查询账户)

4.根据Mapper映射器编写DAO接口

5.在Spring容器中配置MapperScannerConfigurer(会用到

SQLSessionFactory),批量获取DAO接口的实现类。测试

6.包装一个service对象,组件扫描,注入DAO接口的实现类.测试 -M层

搭建一个MVC的环境(基于标注的SpringMVC):

1.建项目、导jar包(ioc/mvc/aop)并拷贝配置文件到src下

2.在web.xml中配置DispatcherServlet

3.在Spring配置文件中开启组件扫描(底层依赖于aop)和开启标注形式

的MVC(自动生成了HandlerMapping的实现类对象

RequestMappingHandlerMapping)。

4.编写控制器(不用实现Controller接口,就是一个普通的类)

5.配置视图解析器

SpringMVC 的实现原理:

SSM 则指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,My

Batis 负责持久化层

区别:

他们最大的区别在于hibernate与mybatis的区别。

-Hibernate与mybatis区别,mybatis更为轻便、灵活,容易掌握。mybatis可以把sql语句从Java代码中分离了出来,放在了配置文件中书写,大大降低里java代码与SQL语句的耦合度,更容易对sql语句操作,重要的是mybatis还可以书写动态的sql语句,但mybatis也存在一些缺陷,比如mybatis本身的缓存机制没有hibernate那么完善,hibernate除了本身有良好的缓存机制,还可以使用第三方缓存。Hibernate较完整的封装了JDBC,但学起来要比mybatis更困难一些。Hibernate的DAO层开发比MyBatis简单,对对象的维护和缓存要比MyBatis好。

-Springmvc与Struts的区别:Struts2是类级别的拦截,一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时跟一个url对应,所以说从框架本 身上SpringMVC容易实现 restful 相对而言Struts2架构起来就比较费劲,因为Struts2中Action的一个方法 对应一个url而其类属性却被所有方法共享,这就无法用注解或其它标住其所属方法。SpringMVC的方法之间基本上是独立的,入口是servlet集成了AJAX和Spring无缝衔接,支持JSR303用的是 Aop拦截实现机制设计思想上Struts2更符合OOP编程思想,SpringMVC开发效率和性能高于Struts2SpringMVC 可以认为是100%零配置。

Hibernate 和 MyBatis 两种ORM框架对比:

两者的相同点:

Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置

文件生成SessionFactory,然后由SessionFactory 生成Session,最

后由Session来开启执行事务和SQL语句。其中SessionFactory

Buider,SessionFactory,Session的生命周期都是差不多的。

Hibernate和MyBatis都支持JDBC和JTA事务处理。

两者各自优势:

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

MyBatis容易掌握,而Hibernate门槛较高。

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结

果映射。

Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的

维护要方便。

Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的

数据库需要写不同SQL。

Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本

身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整

个表,但是也可以使用第三方缓存。

Hibernate 封装性好,屏蔽了数据库差异,自动生成SQL语句,应对

数据库变化能力较弱,SQL语句优化困难。

MyBatis仅实现了SQL语句和对象的映射,需要针对具体的数据库写

SQL语句,应对数据库变化能力较强,SQL语句优化较为方便。

总结

SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)。SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;而SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

附Spring家族:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码上遇见你 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档