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的概念、优点、区别及缺点的更多相关文章

  1. SpringBoot,SSM和SSH

    Springboot的概念: 是提供的全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不在需要定义样板化的配置.此框架不需要配置xml,依赖于想MAVEN这 ...

  2. [转]领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处

    原文地址:http://www.blogjava.net/johnnylzb/archive/2010/05/27/321968.html 上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章 ...

  3. 浅析VO、DTO、DO、PO的概念、区别和用处

    上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用.本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同 ...

  4. 领域驱动设计系列文章——浅析VO、DTO、DO、PO的概念、区别和用处

    本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: ...

  5. 领域驱动设计系列(2)浅析VO、DTO、DO、PO的概念、区别和用处

    PO:persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录.好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象. BO:business object业 ...

  6. 【转】控制台,终端,tty,shell等概念的区别

    转自:http://www.2cto.com/os/201403/282583.html http://blog.sina.com.cn/s/blog_bcdac52b0101i2r1.html 控制 ...

  7. 领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处

    本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: ...

  8. VO、DTO、DO、PO的概念、区别和用处

    转至:http://qixuejia.cnblogs.com/ 本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概 ...

  9. css菜鸟学习之block,inline和inline-block概念和区别

    block,inline和inline-block概念和区别   总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) ...

随机推荐

  1. Flink sql 之AsyncIO与LookupJoin的几个疑问 (源码分析)

    本文源码基于flink 1.14 被同事问到几个关于AsyncIO和lookUp维表的问题所以翻了下源码,从源码的角度解惑这几个问题 对于AsyncIO不了解的可以看看之前写的这篇  <Flin ...

  2. 快速排序平均时间复杂度O(nlogn)的推导

    快速排序作为随机算法的一种,不能通过常规方法来计算时间复杂度 wiki上有三种快排平均时间复杂度的分析,本文记录了一种推导方法. 先放快速排序的伪代码,便于回顾.参考 quicksort(int L, ...

  3. 从源码分析 XtraBackup 的备份原理

    MySQL物理备份工具,常用的有两个:MySQL Enterprise Backup 和 XtraBackup. 前者常用于MySQL企业版,后者常用于MySQL社区版.Percona Server ...

  4. java自定义序列化

    自定义序列化 1.问题引出 在某些情况下,我们可能不想对于一个对象的所有field进行序列化,例如我们银行信息中的设计账户信息的field,我们不需要进行序列化,或者有些field本省就没有实现Ser ...

  5. Django 小实例S1 简易学生选课管理系统 1 项目流程梳理与数据库设计

    Django 小实例S1 简易学生选课管理系统 第1章--项目流程梳理与数据库设计 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 项目流程梳理 ...

  6. Three.js实现脸书元宇宙3D动态Logo

    背景 Facebook 近期将其母公司改名为 Meta,宣布正式开始进军 元宇宙 领域.本文主要讲述通过 Three.js + Blender 技术栈,实现 Meta 公司炫酷的 3D 动态 Logo ...

  7. PAT A1091——BFS

    Acute Stroke One important factor to identify acute stroke (急性脑卒中) is the volume of the stroke core. ...

  8. ICCV2021 | PnP-DETR:用Transformer进行高效的视觉分析

    ​  前言  DETR首创了使用transformer解决视觉任务的方法,它直接将图像特征图转化为目标检测结果.尽管很有效,但由于在某些区域(如背景)上进行冗余计算,输入完整的feature maps ...

  9. 如何利用 JuiceFS 的性能工具做文件系统分析和调优

    JuiceFS 是一款面向云原生环境设计的高性能 POSIX 文件系统,在 AGPL v3.0 开源协议下发布.作为一个云上的分布式文件系统,任何存入 JuiceFS 的数据都会按照一定规则拆分成数据 ...

  10. watch异步操作

    异步操作: 1.ajax, 2.定时器 3.点击事件 4.数据库操作 特点:代码不等待,后续代码会继续执行. watch:{ //watch作用监测已经存在的数据 newVal 新值,oldVal 旧 ...