SSM和springboot对⽐
今天在开源中国上看到⼀篇讲SSM、SpringBoot讲的不错的回答,分享!
⼀、SSM优缺点应该分开来说的,⽐如
1)spring 不说了,核⼼ioc、aop技术,ioc解耦,使得代码复⽤,可维护性⼤幅度提升,aop提供切⾯编程,同样的增强了⽣产⼒。
2)spring mvc嘛,是对⽐struts2等mvc框架来说的,不说struts2爆出的那么多安全漏洞,⽽且是类拦截,所有Action变量共享,同时是filter⼊⼝的,⽽spring mvc是⽅法拦截,controller 独享request respon数据,采⽤的rlvet⼊⼝,与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帮助开发者快速启动⼀个Web容器;
SpringBoot继承了原有Spring框架的优秀基因;
SpringBoot简化了使⽤Spring的过程。
拓展
谈SpringBoot之前,先说⼀下传统的SSM开发,使⽤过SSM开发的⼈都会发现,传统的SSM框架项⽬会有⼤量的配置⽂件,需要⼿动的区整合三个框架,也就是SpringMVC、Spring、MyBatis,并且需要注意各种配置和兼容,后期的维护难度也很⼤。
现在快速开发的⼀个⽹站的⽅式层出不穷,像Node.js,PHP。脚本语⾔也越来越流⾏,⽐如Python,Scala,Ruby等,这时候Spring的开发模型就显得相对笨重了。在这种情况下,由Pivotal团队开发了⼀个⼯具集,叫SpringBoot。其实本质还是Spring Framework。底层代码也还是Springmvc和Spring的整合。不过不需要⼿动的区配置,只需要导⼊相应的依《恐怖童谣》
赖,SpringBoot会⾃动配置。
SpringBoot帮我们做什么什么事情呢?
1、SpringBoot使⽤了特定的配置⽅式,开发⼈员不需要再定义样板化的配置,简化项⽬的初始构建。三字经带拼音的完整版
2、SpringBoot提供了更多的组合式注解,简化开发过程。
美国仓储大亨3、SpringBoot可以"零配置"整合很多第三⽅⼯具。
平淡的近义词4、SpringBoot提供了内置的容器,部署也变得异常简单。
5、SpringBoot应对监控也提供了相应的⽅案。
SpringBoot和SSM不冲突,SpringBoot只是简化了配置,实际开发没什么区别。SSM就好像开⼿动挡的汽车,需要踩离合,挂档,给油车才能开动。⽽SpringBoot就好像⾃动挡的汽车,给油就⾛,踩刹车就停。
在开发中的区别还是存在的,虽然SpringBoot简化了配置,但并不代表不需要编写配置⽂件,还是需要在⾃带的l⽂件中去编写⼀些内容。只不过编写的⽅式变得简单了,虽然简单了,但是和SSM整合的⽅式还有些区别。
在使⽤SSM开发的时候,多数会选择Jsp作为视图,但是SpringBoot不推荐使⽤Jsp,主推的是thymeleaf和freemarker等模板引擎,也造成了使⽤SSM开发到SpringBoot开发也需要⼀定得学习成本。不过如果掌握了SSM的话,学习SpringBoot也是⽔到渠成,异常的简单。
更推荐使⽤SpringBoot开发,⼀是SpringBoot⼯具集的简化配置等操作,可以让程序员把精⼒主要放在代码的业务逻辑上,⼆是想学习Springcloud微服务组件的话,SpringBoot是基础。