Springboot,SSM及SSH的概念、优点、区别及缺点
Springboot的概念:
是提供的全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不在需要定义样板化的配置。此框架不需要配置xml,依赖于像MAVEN这样的构建系统。
Springboot的优点:
1.减少了大量的开发时间并提高了生产力。
2.避免了编写大量的样板代码,注释和XML配置。
3.解决了Spring的弊端。
4.快速整合第三方框架,无需配置文件。
5.代码少了、配置文件少了、不需要对第三方框架烦恼了、项目精简了,对整个团队的开发及维护来说,更大的节约了成本。
6.使用Java开发基于Spring的应用程序非常容易。
Springboot的缺点:
1.修复bug较慢,报错时难以定位到该点。
2.集成度较高,不易了解底层。
总结:简单、快速、方便地搭建项目;对主流开发框架的无配置集成;极大提高了开发、部署效率。
SSM的概念:
SSM框架,是三层结合所成的框架,分别是,Spring,SpringMVC,MyBatis所组成。Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC代表了Model,View,Controller接收外部请求,进行分发和处理。Mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
Spring的概念:
Spring是一个开源开发框架,Spring主要用来开发java应用,构建J2EE平台的web应用。其核心就是提供一种新的机制管理业务对象及其依赖关系。
Spring的优点:
1.容器:Spring是一个容器,包含并管理对象的生命周期和配置。
2.支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性。
3.轻量级框架:Spring是轻量级框架,其基本的版本大约2M。
4.控制反转 :Spring通过控制反转实现松散耦合,对象们给它们的依赖,而不是创建或者查找依赖的对象们方便解耦,简化开发。
5.方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。
6.降低Jave EE API的使用难度:Spring对Java EE开发中非常难用的一些API(如JDBC),都提供了封装,使这些API应用难度大大降低。
7.方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如Struts、MyBatis等)的直接支持。
8.支持声明式事务处理:只需要通过配置就可以完成对事物的管理,而无须手动编程。
Spring的缺点:
1.依赖反射,反射影响进程。
2.太过于依赖设计模式。
3.控制器过于灵活。
4.不支持分布式应用。
SpringMVC的概念:
属于Spring框架的一部分,用来简化MVC架构的web应用程序开发。
SpringMVC的优点:
1、拥有强大的灵活性,非侵入性和可配置性
2、提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象
3、分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成
4、可以自动绑定用户输入,并正确的转换数据类型
5.可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。
SpringMVC的优点:
1.Servlet API 耦合难以脱离容器独立运行。
2.太过于细分,开发效率低。
Spring和Springboot的区别:
1.Spring Boot可以建立独立的Spring应用程序;
2.内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再做部署工作了。
3.无需再像Spring那样搞一堆繁琐的xml文件的配置;
4.可以自动配置Spring;
5.提供的POM可以简化Maven的配置;
Springboot和SpringMVC的区别:
Spring 是一个“引擎”;
Spring MVC 是基于Spring的一个 MVC 框架 ;
Spring Boot 是基于Spring的条件注册的一套快速开发整合包。
mybatis的概念:
MyBatis是一个简化和实现了 Java 数据持久化层(persistence layer)的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。MyBatis的前身是iBATIS,iBATIS于2002年由ClintonBegin创建。MyBatis3是iBATIS的全新设计,支持注解和Mapper。
mybatis的优点:
1.与JDBC相比,减少了50%以上的代码量。
2. MyBatis是最简单的持久化框架,小巧并且简单易学。
3. MyBatis灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。
4. 提供XML标签,支持编写动态SQL语句(XML中使用if, else)。
5. 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)。
mybatis的缺点:
1.SQL语句的编写工作量较大,对开发人员的SQL语句编写有一定的水平要求。
2.SQL语句过于依赖数据库,不能随意更换数据库。
3.拼接复杂SQL语句时不灵活。
SSH的概念:
SSH框架是JAVA EE中三种框架所集成。分别为Struts,Spring,Hibernate框架所组成,是当前比较流行的JAVA WEB开源框架。
集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
Struts2的概念:
Struts2是一个基于MVC设计模式的Web应用框架,相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2在Struts1融合webwork。
Struts2的优势:
1.实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。
2.丰富的标签库,大大提高了开发的效率。
3.Struts2提供丰富的拦截器实现。
4.通过配置文件,就可以掌握整个系统各个部分之间的关系。
5.异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。
6. Struts2的可扩展性高。
7.面向切面编程的思想在Strut2中也有了很好的体现。体现了拦截器的使用,拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个、Action中就可以。
Struts2的缺点:
1.校验较繁琐,多字段时出错返回不同。
2.安全性太低。
3.获取传参时较麻烦。
Hibernate的概念:
Hibernate是一个Java领域的持久层的ORM(对象/关系映射)框架。与各种数据库,SQL语句打交道,是数据持久化的一种解决方案。ORM框架是不同于MVC的另一种思想框架,适用范围也与MVC截然不同。类似功能的框架还有SUN的JDO、Oracle公司的TopLink、Apache的iBatis和openJPA等。
Hibernate的优点:
1.对象/关系数据库映射(Basic O/R Mapping)它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想。
2.透明持久化(Persistent)带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)Session相关联。一旦这个Session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。
3.事务Transaction 应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个Session之内可能包含多个Transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。4.它没有侵入性,即所谓的轻量级框架。
5.移植性会很好。
6.缓存机制。提供一级缓存和二级缓存。
Hibernate的缺点:
1.持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活应用原生SQL。
2.批量数据处理的时候是较弱势。
3.框架中使用ORM原则,导致配置过于复杂,遇到大项目,维护和问题不断。
4.配置文件复杂。
原文链接:https://blog.csdn.net/nan961136007/article/details/88051476
Springboot,SSM及SSH的概念、优点、区别及缺点的更多相关文章
- SpringBoot,SSM和SSH
Springboot的概念: 是提供的全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不在需要定义样板化的配置.此框架不需要配置xml,依赖于想MAVEN这 ...
- [转]领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
原文地址:http://www.blogjava.net/johnnylzb/archive/2010/05/27/321968.html 上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章 ...
- 浅析VO、DTO、DO、PO的概念、区别和用处
上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用.本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同 ...
- 领域驱动设计系列文章——浅析VO、DTO、DO、PO的概念、区别和用处
本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: ...
- 领域驱动设计系列(2)浅析VO、DTO、DO、PO的概念、区别和用处
PO:persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录.好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. BO:business object业 ...
- 【转】控制台,终端,tty,shell等概念的区别
转自:http://www.2cto.com/os/201403/282583.html http://blog.sina.com.cn/s/blog_bcdac52b0101i2r1.html 控制 ...
- 领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: ...
- VO、DTO、DO、PO的概念、区别和用处
转至:http://qixuejia.cnblogs.com/ 本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概 ...
- css菜鸟学习之block,inline和inline-block概念和区别
block,inline和inline-block概念和区别 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) ...
随机推荐
- Flink sql 之AsyncIO与LookupJoin的几个疑问 (源码分析)
本文源码基于flink 1.14 被同事问到几个关于AsyncIO和lookUp维表的问题所以翻了下源码,从源码的角度解惑这几个问题 对于AsyncIO不了解的可以看看之前写的这篇 <Flin ...
- 快速排序平均时间复杂度O(nlogn)的推导
快速排序作为随机算法的一种,不能通过常规方法来计算时间复杂度 wiki上有三种快排平均时间复杂度的分析,本文记录了一种推导方法. 先放快速排序的伪代码,便于回顾.参考 quicksort(int L, ...
- 从源码分析 XtraBackup 的备份原理
MySQL物理备份工具,常用的有两个:MySQL Enterprise Backup 和 XtraBackup. 前者常用于MySQL企业版,后者常用于MySQL社区版.Percona Server ...
- java自定义序列化
自定义序列化 1.问题引出 在某些情况下,我们可能不想对于一个对象的所有field进行序列化,例如我们银行信息中的设计账户信息的field,我们不需要进行序列化,或者有些field本省就没有实现Ser ...
- Django 小实例S1 简易学生选课管理系统 1 项目流程梳理与数据库设计
Django 小实例S1 简易学生选课管理系统 第1章--项目流程梳理与数据库设计 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 项目流程梳理 ...
- Three.js实现脸书元宇宙3D动态Logo
背景 Facebook 近期将其母公司改名为 Meta,宣布正式开始进军 元宇宙 领域.本文主要讲述通过 Three.js + Blender 技术栈,实现 Meta 公司炫酷的 3D 动态 Logo ...
- PAT A1091——BFS
Acute Stroke One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. ...
- ICCV2021 | PnP-DETR:用Transformer进行高效的视觉分析
前言 DETR首创了使用transformer解决视觉任务的方法,它直接将图像特征图转化为目标检测结果.尽管很有效,但由于在某些区域(如背景)上进行冗余计算,输入完整的feature maps ...
- 如何利用 JuiceFS 的性能工具做文件系统分析和调优
JuiceFS 是一款面向云原生环境设计的高性能 POSIX 文件系统,在 AGPL v3.0 开源协议下发布.作为一个云上的分布式文件系统,任何存入 JuiceFS 的数据都会按照一定规则拆分成数据 ...
- watch异步操作
异步操作: 1.ajax, 2.定时器 3.点击事件 4.数据库操作 特点:代码不等待,后续代码会继续执行. watch:{ //watch作用监测已经存在的数据 newVal 新值,oldVal 旧 ...