03.03 Springboot能替代传统ssm架构吗?

大松树9


首先我们要理解SSM框架是什么?SpringBoot框架又是什么?

SSM是springmvc+spring+mybaits三大框架集成的项目,SpringBoot项目是为了省去配置文件,把配置文件写在代码里面的一套快速开发框架,可以说从宏观角度来分析,springboot的应用范围>SSM框架,从框架角度来说,他们的底层原理是一样的,只是springboot为了开发者快速开发集成的一套框架,springboot不仅可以集成mybaits,还可以集成jpa,jdbc等等。所以两者的范围不一样,我个人理解,业务需求决定项目框架。


龙川本地资讯


Springboot和ssm侧重点不同,springboot并不是为了替代ssm

springboot和ssm开发中有什么区别?

对于普通开发而言,springboot和ssm好像并没有太多的区别,尤其web开发过程中,基本上就是springmvc接收请求,spring做对象管理,mybatis进行数据操作,在这一层面而言,使用springboot和ssm or ssh,并没有什么区别

Controller层接收请求 ->service处理操作 - >dao层数据操作

但是跳转到更上一级而言,springboot的意义就十分重大了。

springboot提供了一个“标准”

在以往的ssm架构中,根据不同架构师的理念,对于ssm的整体配置,有着不同的理解,有些架构师喜欢将html页面,静态文件等等扔在一个目录下解析,有些架构师喜欢分开目录解析,还有些架构师喜欢在页面后附加.do 来区分是请求controller还是静态资源。

当然这样做并没有太大的问题,唯一的问题是,有没有一个良好的标准来约束。从而减少开发人员上手时,减少阅读配置文件的时间?如果形成一个良好的规范,大家都遵守该规范,那么也就不再有必要阅读那些毫无意义却又十分重要的配置文件?

在springboot-starter-web中,你可以直接将静态资源放在/static下,静态页面放在/public下,若是需要配置站点的icon,只需要在目录下放置一个对应名称的文件即可。

若是需要连接mysql,则可以选择对应的starter,然后根据对应starter所要求必须的配置项,在application.properties中配置即可。

而若是使用ssm架构,或许架构师会这么做。

首先引入对应的jar包,然后处理对应的依赖,若是有冲突,则需要解决依赖冲突,解决完毕后,配置对应的配置文件,然后再配置spring的xml。

换成springboot ,就只需要两步,寻找starter,在application.properties配置必要参数

依赖问题由starter及springboot parent去解决,参数配置集中配置在application.properties。

这就解决了好几个问题,首先,参数配置均在application.properties中,其次,依赖问题有starter自己解决,依赖冲突有springboot parent去解决。我们只需要关注最核心的几个参数配置即可,而且其他人上手该项目,也只需要去关注最重要的几个点即可,而不是在一堆xml中去查证对应配置。

由此看来,springboot和传统的ssm的区别,则在于其提供了一个良好且有效的标准,虽然它允许你可以自由配置,但是它仍旧希望你在满足需求的前提下,使用它的默认配置,而在目前看来,springboot的默认配置,也已经满足了绝大多数情况下的开发要求。

对于springboot和ssm的区别,个人理解看来,springboot更像是一个应用商店,你需要什么,你就去寻找对应的应用(starter),并组装完成你的需求,而ssm,则仅仅是一个简单的应用工具,仅用于web开发领域。

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

所以,springboot的产生并不是为了替代ssm,并不局限于web开发,它通过约定大约配置原则,让开发效率进一步提高,通过springboot开发会很方便,和SSM框架相比,大家会更倾向于springboot


软件知识库


“替代”感觉谈不上,只能说是不同时期的产物。

换做5年前甚至7年前,SSM确实很流行,三大框架进行整合,Spring做装载bean的容器,Struts2做页面跳转逻辑,Mybatis做ORM框架,页面用的JSP,所有的一切看起来非常完美。


随着互联网的技术迭代以及用户数量的增长,原来的一些传统项目在高负载和高并发的场景下显得越来越吃力,慢慢的人们开始考虑页面静态化(FreeMarker)和缓存(Memcache)等技术使得项目能够满足实际场景需求。

随着互联网组件的成熟以及阿里双十一的技术落地推广,才使得一些现在常用的技术得以展现在大众的视野面前,如Redis、MQ、Dubbo、Kafka、Springcloud全家桶等,上面所提及的这些技术,都是在某一场景下表现优秀进而被大家所熟知的。

每一种技术的产生都是为了解决当前所遇到的一些问题,都是时代的产物。


仔细分析下Springboot,其底层还是Spring,在Spring Java配置的基础上开发了自动化配置,这也属于时代的产物,为了迎合那些比较懒的程序员,通过简简单的配置就可以达到之前需要大量配置才能达到的效果。

总结一句:“替代”感觉谈不上,只能说是不同时期的产物!


欢迎在下方评论区留言,交流沟通,互喷!


程序猿阿浪


spring boot能替代传统ssm架构吗?初看这个题目,感觉怪怪的,就我理解的spring boot和ssm在使用上完成不冲突,在特定的业务场景中,整合起来一起用,效果极佳。

为何这么说呢?spring boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。而SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。从其概念就可以看出,spring boot本身还是spring,其主要在spring的配置上做了很大程度上的简化,借用spring4的条件注解,增加了大量的默认配置,从而使项目配置启动更加快捷简单。而使用spring boot配置ssm框架,仍然作为许多公司的技术解决方案,得到很多程度上的使用。

据我了解,将spring boot和ssm放在一起比较是没有探讨价值的。更多的是,以ssm为基础引入dubbo的分布式技术线是否会被以spring boot+spring cloud的微服务的技术线而替代的话题,讨论的或许更多。这两块我都经历过,也有过相关项目经历。就我感觉而已,spring boot+spring cloud是未来的目前的发展方向,但是其大量的http请求通信的效率问题,仍然是限制其发展的主要因素,即建议其在小规模的公司或者团队使用,并且建议其在性能要求不高的业务场景中进行使用。而ssm依旧是经典,从之前到今后相关长的一段时间内,仍然是企业级项目开发的主流。

技术在发展,程序员也需要跟得上步伐,在了解和使用新技术的同时,要结合团队的业务场景,要适合团队技术线发展的主流,谨慎在线上环境中使用。简而言之,spring boot 是框架,spring boot大体上就是:已经配置好配置文件(取默认值)的springMVC(spring全家桶)+ 插件版tomcat。


夕阳雨晴


首先我认为大概率会的(我可以意会题主想表达的意思),但是这个问题又有一些怪怪的,Spring Boot和SSM也不冲突,使用Spring Boot依然可以使用Mybatis,只能说,未来会有越来越多的公司使用Spring Boot,而不是直接对SSM做集成。

SSM VS Spring Boot

  • 先看看SSM里面有什么:Spring核心IOC,模块和模块之间解耦,增加代码的复用性,AOP面向切面编程; Spring MVC,轻量级的MVC框架;Mybatis ,ORM框架,直接使用SQL更容易进行掌控和调优。

  • 而Spring Boot的出现,主要是可以很大程度上减少构建配置的工作。对于我们程序员来说,我们现在做一个项目的时候,不用像以前搭建SSM架构那样,需要花时间写大量的XML配置,而Spring Boot只需要通过注解的形式,在代码中配置即可。

用Spring Boot开发,究竟能有多快

继续说说Spring Boot的优点,它到底能为开发人员提速多少呢?

  • Spring Boot提供了大部分主流框架的集成,提供了丰富的 Starters,集成主流开源框架,只需要进行简单的配置就可以完成。

  • Spring Boot让部署变的更加简单,因为它本身就内嵌了应用服务器,开发完成的程序,只需要一行命令就可以启动,结合Docker使用效果更好。

  • 注意,只是简化,该写的业务代码还是要写的。

Spring Boot && 微服务(服务化)

企业级应用的一个趋势,就是把从前一个很庞大的项目,拆分成N个独立的服务,几个服务配合,完成完整的业务流程。这样做的好处是服务能力的复用,每次修改只针对一个服务进行开发,增加迭代速度。

  • 如果一个项目依然是一个程序包,使用SSM“地狱般”的配置,忍忍也就过去了,服务发布慢,也可以忍受,反正就一个包嘛,但是如果项目服务化,甚至微服务化了之后,这般的复杂是无法忍受的。

  • Spring Boot令开发速度增快,部署速度增快,所以更符合现在微服务(服务化)的趋势。(有些公司不一定能做到微服务级别,所以我在微服务后面增加了一个说明——服务化)

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


套用一句广告词--这是板上钉钉的事!

不过问题问得也不大对,应该是springboot+mybatis能不能取代SSM!

SSM=spring+spring mvc(也有人说是struts2)+mybatis;作为一套替代JAVA传说中的三大框架SSH的轻量级替代品,拥有着广大的人民群众基础和市场!其中spring作为容器框架,spring mvc作为控制器,分发器,模型对象的处理者,mybatis作为数据持久化框架,读写数据库数据!



SSM框架曾经一度占领着后台服务器的开发框架,但是配置十分繁琐,需要额外的搭建应用服务器等,用起来苦不堪言!在这种背景下,springboot应运而生,旨在使用超级轻量级的配置就能实现大型的分布式服务架构的目的!

看下springboot的官方定义:基于springboot构建任何事!

高级特性:
springboot能让你以最少的配置最快的时间搭建一套服务!

秒级别的spring容器初始化!

可以构建rest风格的服务,websocket,流式处理等!

构建简单,但是十分安全!

对sql和nosql有丰富的支持!

内置tomcat和jetty让你无需再使用war包等方式进行部署!

支持生产环境热部署和自动重启!

故障跟踪和健康监控工具等等!

可以说springboot就是为了大型企业化的服务框架而生!

为什么说springboot一定会替代SSM呢?我们看下JAVA web开发的主要框架历程,原生开发到SSH到SSM再到springboot!一步一步都是为了彻底的实现注重业务开发,而对于数据连接,日志打印,性能监控能实现轻开发,甚至零开发!

springboot能让你秒级的搭建一个web服务器!同时只需要在配置中加入简单的mybatis连接注入就实现了原本复杂的配置文件!

像下面这样的几行代码就得到了一个简单的服务:

@RestController class App { @RequestMapping("/")

String home()

{ "hello" }

}

开启安全模式:

  • security:
  • basic:
  • enabled: true
  • user: name: secured
  • password: foo

总之,springboot能极大的解决业务问题以外的开发问题,让开发者能从繁杂的边缘开发中解放出来,提高开发效率!

所以,作为JAVA程序员,必须快速切入到springboot和springcloud的开发中来!提高自己的生产力!

做一个关于springboot连接config,consul,mybatis,docker,druoid,hytrix等的配置和Demo,你就会明白开发原来那么容易!

如果你在springboot使用过程中有任何问题,关注私信我,我一定会为你解答!


此生唯一


按目前流行程度来看的话,SpringBoot完全是可以替代SSM的了。

首先,SpringBoot是基于Spring全家桶的一个框架,自动化配置是它的一大特色。任何模块,只需要引入依赖,就自动配置好,而不需要想SSM那样,写很多的配置文件。

创建一个Springboot项目也只是需要一会的功夫,官方有一键创建Springboot项目的工具,非常的方便。

现在的情况就是,Java程序员已经到了必须学Springboot的地步,很多公司新项目基本都会使用Springboot进行开发,当然也存在部分使用SSM的,比如本人一些银行的客户等,这种属于比较保守的。

现在流行的SpringCloud微服务全家桶,其实都是在Springboot的基础上搭建的。微服务是整个行业技术的风向标,掌握Springboot是基础中的基础。

所以本人认为,Springboot完全可以替代传统的SSM,不管是哪个方面…


Happyjava


不知道以上回答的人,是否用过springboot,张嘴就来。

很明显spring公司在经过spring出了的一段时间内,工作重心找不到,目标不明确。

但是,在出了boot后,思路非常清晰,就是用boot做一站式的开发处理。并且spring cloud也完全基于boot。spring以后的思路就跟明显了,就是想用spring boot加spring cloud一统江湖。完成分布式,微服务式的大型web开发。

不知道,各位怎么选择的,我们公司从去年用了spring boot后,又对应的上了spring cloud,再也没有去用什么SSM开发。个人也是,而且以后也不会再用了,配置太过繁琐,生成的war包还需要维护对应的容器。boot生成的jar包,只要有jre环境就能运行,为什么不呢。

结论就是,无论从开发角度,还是他们的战略方向spring boot就是用来代替ssm的,而且从ssm切换到spring boot一上手就明显感觉到好用,方便,强大。就像从eclipse切换到intellij idea 一样。


Nathan_Zhou


肯定不能这样说替代SSM,springboot和ssm是两码事,不能简单对比!

springboot只是一个容器框架,极大的简化了spring的一些配置而已,它有内置嵌套的Tomcat、jetty等web容器,部署项目不用再安装Tomcat这些web容器了,直接引入相关jar包,使用内置的就非常简单了,这样也简化了环境的部署。

现在使用springboot构建项目是一种主流趋势,它能快速搭建起项目,可以实现快速部署和扩展,特别适合用来构建微服务项目!


kangzhili


在我4年多互联网企业开发经验看来

springboot只是一个替代tomcat等传统web容器的一个新兴的框架

说他能代替ssm目前看来还不现实 springmvc还无法代替

mybatis的便捷性和灵活性目前也没有革命性的框架能够代替

不过,在一线互联网企业中比如阿里和它的一些附属公司,比如未来酒店等springboot的应用还是非常广泛的

因此,抓紧时间学习和研究springboot是很有必要的!


分享到:


相關文章: