SSH, SSM 与 Spring Boot, SpringCloud


 

在实际的开发工作中,大部分项目都是基于框架来开发的。常见的Java 应用框架有 Spring,SpringMVC, SpringBoot, SpringCloud等。

在传统的Java项目中,通过Java框架与一些ORM框架,前端框架的组合,形成了一个Java项目的最基本的技术框架。框架之所以流行,在于其易复用和简化开发。常见的框架有:

SSH

SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成。

集成SSH框架的系统从职责上分为(Struts2--控制;Spring--解耦;Hibernate--操作数据库),以帮助开发人员在短期内搭建结构清晰、可服用好、维护方便的web应用程序。

使用Struts作为系统的整体基础框架,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。

SSM

SSM框架,是三层结合所成的框架,分别是,Spring,SpringMVC,MyBatis所组成。

SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。

Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。

Mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。

Spring Boot

SpringBoot 是一个全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进配置,让开发人员不在需要定义样板化的配置。 Spring boot 看名字就知道是Spring的引导,就是用于启动Spring的,使得Spring的学习和使用变得快速无痛。不仅适合替换原有的工程结构,更适合微服务开发。此框架不需要配置xml,依赖于像MAVEN这样的自动化构建工具来初始化项目。

SpringCloud

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,为微服务体系开发中的架构问题,提供了一整套的解决方案,包括:服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。

Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架springBoot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现。

一、SSM优缺点应该分开来说的,比如

1)spring 不说了,核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。

2)spring mvc嘛,是对比struts2等mvc框架来说的,不说struts2爆出的那么多安全漏洞,而且是类拦截,所有Action变量共享,同时是filter入口的,而spring mvc是方法拦截,controller独享request response数据,采用的serlvet入口,与spring无缝对接。开发而言,spring mvc更加轻量和低入门。

3)mybatis嘛,看业务场景,主要是mybatis的sql可以由开发者去掌控和调优,相对hibernate等orm框架来说,更加直观。在业务场景比较复杂,sql好多联合关联的情况下,mybatis谁用谁知道。当然缺点就是对sql不熟悉的开发者就不太友好了。

二、 SSM框架和spring boot全家桶相比有哪些优缺点?

这两者对比起来有点奇怪。因为SSM是WEB应用框架,涵盖整个应用层,而spring boot你可以看做一个启动、配置、快速开发的辅助框架,本身针对的是微服务。springboot 只是为了提高开发效率,是为了提升生产力的:

1、springboot一个应用是一个可执行jar(启动类main方法启动web应用),而不像传统的war,内嵌tomcat容器,可以jar形式启动一个服务,可以快速部署发布web服务,微服务最好不过了。

2、将原有的xml配置,简化为java配置

3、当然结构可能跟一般的ssm有一定区别,但其实主要是在资源文件。

Spring Boot 默认“约定”从资源目录的这些子目录读取静态资源:

  • src/main/resources/META-INF/resources
  • src/main/resources/static (推荐)
  • src/main/resources/public

SSM.SSH与SpringBoot的区别

SSM 与 SSH 均是基于Spring开发。基于Spring开发有一下特点:

  1. 依赖太多了,而且要注意版本兼容。一个应用,要添加10-20个依赖,Spring相关的包10多个,然后是Hibernate包,Spring与Hibernate整合包,日志包,json包一堆,而且要注意版本兼容性。
  2. **配置太多了,**要配置注解驱动,要配置数据库连接池,要配置Hibernate,要配置事务管理器,要配置Spring MVC的资源映射,要在web.xml中配置启动Spring和Spring MVC等
  3. 部署和运行麻烦。要部署到tomcat里面。不能直接用java命令运行。

为了解决上述痛点,SpringBoot诞生了。SpringBoot框架有如下特点:

  1. 通过starter和依赖管理解决依赖问题。
  2. 通过自动配置,解决配置复杂问题。
  3. 通过内嵌web容器,由应用启动tomcat,而不是tomcat启动应用,来解决部署运行问题。

因此在项目中,为了加快项目的开发效率,简化开发流程,公司中大部分新的项目是基于SpringBoot 来开发的。学习SpringBoot,主要是学习其自动配置的原理,以及相关场景启动器 与 默认的版本管理等。

https://www.cnblogs.com/wwct/p/12942781.html

什么是SSM框架?有哪些组成部分?

你可能感兴趣的:(java,spring,开发语言)