SSM和springboot对比
今天在开源中国上看到一篇讲SSM、SpringBoot讲的不错的回答,分享!
https://www.oschina.net/question/930697_2273593
一、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帮助开发者快速启动一个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简化了配置,但并不代表不需要编写配置文件,还是需要在自带的application.yml文件中去编写一些内容。只不过编写的方式变得简单了,虽然简单了,但是和SSM整合的方式还有些区别。
在使用SSM开发的时候,多数会选择Jsp作为视图,但是SpringBoot不推荐使用Jsp,主推的是thymeleaf和freemarker等模板引擎,也造成了使用SSM开发到SpringBoot开发也需要一定得学习成本。不过如果掌握了SSM的话,学习SpringBoot也是水到渠成,异常的简单。
更推荐使用SpringBoot开发,一是SpringBoot工具集的简化配置等操作,可以让程序员把精力主要放在代码的业务逻辑上,二是想学习Springcloud微服务组件的话,SpringBoot是基础。
SSM和springboot对比的更多相关文章
- SpringBoot对比SpringMVC,SpringMVC 处理请求过程
(问较多:1.SpringBoot对比SpringMVC.2.SpringMVC 处理请求过程.问:springboot的理解 Spring,Spring MVC,Spring Boot 三者比较 S ...
- 使用SSM 或者 springboot +mybatis时,对数据库的认证信息(用户名,密码)进行加密。
通常情况下,为了提高安全性,我们需要对数据库的认证信息进行加密操作,然后在启动项目的时候,会自动解密来核对信息是否正确.下面介绍在SSM和springboot项目中分别是怎样实现的. 无论是使用SSM ...
- 使用maven构建项目时,SSM和springboot项目的打包与云服务器部署
下面讲讲如何打包SSM和springboot项目,并部署到云服务器上. 由于使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven ...
- 后端分页神器,mybatis pagehelper 在SSM与springboot项目中的使用
mybatis pagehelper想必大家都耳熟能详了,是java后端用于做分页查询时一款非常好用的分页插件,同时也被人们称为mybatis三剑客之一,下面 就给大家讲讲如何在SSM项目和sprin ...
- SSM非springboot配置swagger2
前提:maven,ssm,不是springboot项目 1.在maven中添加依赖 <!-- Swagger2 Begin --> <!--springfox的核心jar包--> ...
- 关于java基础、多线程、JavaWeb基础、数据库、SSM、Springboot技术汇总
作者 : Stanley 罗昊 本人自行总结,纯手打,有疑问请在评论区留言 [转载请注明出处和署名,谢谢!] 一.java基础 1.多态有哪些体现形式? 重写.重载 2. Overriding的是什么 ...
- 浅谈Mybatis持久化框架在Spring、SSM、SpringBoot整合的演进及简化过程
前言 最近开始了SpringBoot相关知识的学习,作为为目前比较流行.用的比较广的Spring框架,是每一个Java学习者及从业者都会接触到一个知识点.作为Spring框架项目,肯定少不了与数据库持 ...
- 计算机毕业设计选题大合集,含ssm,springboot,小程序,php,python
1基于springboot医院急诊系统 2基于springboot校园闲置物品租售系统 3基于springboot校园闲置物品交易网站 4基于springboot图书网站 5基于springboot外 ...
- 单表(SSM、SpringBoot、SpringCloud、Freemaker、BootStrap等)
山门也有门门道道, 开发.测试.安卓...... 小子被纳入MIS小山峰,虽不及BOP势力庞大,高手如云, 仅寥寥七人, 却也于入小山峰之事乐趣至极. 前几日峰主布下一道新手任务, 制作一张单表并运行 ...
随机推荐
- stom消费kafka消息速度慢的问题
原来代码如下 KafkaSpoutConfig<String, String> kafkaSpoutConfig = KafkaSpoutConfig.builder(kafka_serv ...
- 解决IntelliJ IDEA的Plugins无法访问Marketplace去下载插件
本文图文讲解如何解决IntelliJ IDEA的Plugins无法访问Marketplace去下载插件. 默认打开IDEA的Plugins会加载很久,最后什么也没加载出来. 这时我们可以给插件市场设置 ...
- Spring Boot程序中@JsonIgnoreProperties与@JsonIgnore基本使用
问题由来: springboot项目中定义了很多类,我们在rest返回中直接返回或者在返回对象中使用这些类,spring已经使用jackson自动帮我们完成这些的to json.但是有时候自动转的js ...
- super和this
super注意点: 1.super调用父类的构造方法,必须在构造方法的第一个 2.super必须只能出现在子类的方法或者构造方法中 3.super和this不能同时调用构造方法 this: 代表的对象 ...
- Java学习(十六)
今天先学了文本标签 <p> <strong>永远不要相信诺克萨斯人的血条!</strong><!--表示一段内容的重要性--> <br /> ...
- LOTO示波器实测——光照强度传感器
loto最近推出了很多的周边传感器模块的实测案例,本文介绍和演示LOTO示波器实测光照强度传感器的使用. 下图就是主角感光模块,可以用来测量光照强度. 这个模块也很简单,只有3个引脚,一个电源,3.3 ...
- ECharts + jsp 图表
... <%@ page language="java" pageEncoding="UTF-8"%> <%@page import=&quo ...
- 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人
明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...
- 数值分析:幂迭代和PageRank算法(Numpy实现)
1. 幂迭代算法(简称幂法) (1) 占优特征值和占优特征向量 已知方阵\(\bm{A} \in \R^{n \times n}\), \(\bm{A}\)的占优特征值是比\(\bm{A}\)的其他特 ...
- 洛谷 P3287 - [SCOI2014]方伯伯的玉米田(BIT 优化 DP)
洛谷题面传送门 怎么题解区全是 2log 的做法/jk,这里提供一种 1log 并且代码更短(bushi)的做法. 首先考虑对于一个序列 \(a\) 怎样计算将其变成单调不降的最小代价.对于这类涉及区 ...