【全栈最全Java框架总结】SSH、SSM、Springboot

本系列用来记录常用java框架的基本概念、区别及联系,也记录了在使用过程中,遇到的一些问题的解决方法,方便自己查看,也方便大家查阅。

欲速则不达,欲达则欲速!

JavaWeb视频教程(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)

一、SSH

1、基本概念

SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成,是当前比较流行的java web开源框架。

集成SSH框架的系统从职责上分为(Struts2--控制;spring--解耦;hibernate--操作数据库),以帮助开发人员在短期内搭建结构清晰、可服用好、维护方便的web应用程序。使用Struts作为系统的整体基础框架,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用hibernate框架对持久层提供支持,spring做管理,管理Struts和hibernate。

2、Struts2

(1)基本概念

Struts2是一个基于MVC设计模式的web应用框架,相当于一个servlet,在MVC设计模式中,Struts2作为控制器(controller)来建立模型与视图的数据交互。Struts2在Struts1融合webwork。struts2以webwork为核心,采用拦截器的机制来处理用户的请求,这样的设计使得业务逻辑控制器能够与servletAPI完全脱离。

(2)Struts2框架的运行结构

解析:客户端发送请求(HttpServletRequest)到服务器,服务器接收到请求就先进入web.xml配置文件看看有没有配置过滤器,发现有有Struts2的过滤器,然后找到struts.xml配置文件,struts.xml配置文件里定义一个action,然后就去找到action类,此类继承ActionSupport接口,并且实现了execute()方法,返回一个字符串“success”给struts.xml配置文件,struts.xml配置文件的action会默认调用action类的execute()方法,result接收到返回的字符串,result就会调用你指定的jsp页面将结果呈现,最后响应给客户端。

(3)Struts2的优势

  • 实现了MVC模式,层次结构清晰,使程序员只需要关注业务逻辑的实现。
  • 丰富的标签库,大大提高了开发的效率。
  • Struts2提供丰富的拦截器实现。
  • 通过配置文件,就可以掌握整个系统各个部分之间的关系。
  • 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做响应的处理。
  • Struts2的可扩展性高。
  • 面向切面编程的思想在Struts2中也有了很好的体现。
  • 体现了拦截器的使用,拦截器是一个一个的小功能模块,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个Action中就可以。

(4)Struts2的缺点:

  • 校验较繁琐,多字段出错返回不同。
  • 安全性太低
  • 获取传参时较麻烦

2、Spring

(1)基本概念

spring是一个开源开发框架,是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

spring主要用来开发java应用,构建J2EE平台的web应用。其核心就是提供一种新的机制管理业务对象及其依赖关系。

(2)spring的流程图

解析:上面是在Struts结构图的基础上加入了spring流程图,在web.xml配置文件中加入了spring的监听器,在struts.xml配置文件中添加

“<constant name="struts.objectFactory" value="spring" />”

是告知Struts2运行时使用spring来管理对象,spring在其中主要做的就是注入实例,所有需要类的实例都由spring管理。

(3)spring的优点

  • 容器:spring是一个容器,包含并管理对象的生命周期和配置。可以配置每个bean如何被创建,基于一个可配置原型prototype,你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例。
  • 支持AOP:spring提供对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性。
  • 轻量级框架:spring是轻量级框架,其基本的版本大约2M。
  • 控制反转:spring通过控制反转实现松耦合。对象们给他们依赖,而不是对象本身,方便解耦,简化开发。
  • 方便程序测试:spring提供了Junit4的支持,可以通过注解方便的测试spring程序。
  • 降低java EE API的使用难度:spring对java EE开发中非常难用的一些API(比如JDBC),都提供了封装,使这些API应用难度大大降低。
  • 方便集成各种优秀框架:spring内部提供了对各种优秀框架(如Struts、mybatis)的直接支持。
  • 支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无须手动编程。

(4)spring的缺点

  • 依赖反射,反射影响进程。
  • 太过于依赖设计模式。
  • 控制器过于灵活。
  • 不支持分布式应用。

Spring常用注解(绝对经典)

Spring视频教程--颜群

3、hibernate

(1)基本概念

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

(2)hibernate的核心构成和执行流程图

(3)hibernate的优点

  • 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
  • Hibernate是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了。
  • 透明持久化(persistent)带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的javabeans/POJO,(POJO概念,plain ordinary java object,简单的java对象,可以简单理解为简单的实体类entity。)这个对象没有实现第三方框架或接口,唯一特殊的是他们正与session关联。一旦这个session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。
  • 事务transaction应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA(java transaction API,JTA允许应用程序执行分布式事务处理,在两个或多个网络计算机资源访问并且更新数据,JDBC驱动程序的JTA支持极大地增强了数据访问能力)以及CORBA(公用对象请求代理程序体系结构,common object request broker architecture,简而言之,CORB允许应用程序和其它的应用程序通讯)事务隔离开。某些情况下,一个session之内可能包含多个transaction对象,事务边界的开启与关闭时必不可少的。
  • 它没有侵入性,是轻量级框架。
  • 移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
  • 缓存机制,提供一级缓存和二级缓存。

一级缓存:是session级别的缓存,一个session做了一个查询操作,它会把这个操作的结果放到一级缓存中,如果短时间内这个session又做了同一个操作,那么hibernate直接从一级缓存中拿出,而不会去连数据库取数据。

二级缓存:是sessionFactory级别的缓存,就是查询的时候会把结果缓存到二级缓存中,如果同一个sessionFactory创建的某个session执行了相同的操作,hibernate就会从二级缓存中拿出结果,而不会再去连接数据库。

(4)hibernate的缺点

  • 持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活应用原生SQL。
  • 批量数据处理的时候较为弱势。
  • 框架中使用ORM原则,导致配置过于复杂,遇到大项目,维护问题不断。

Hibernate实现CRUD(附项目源码)

为什么很多人不愿意用hibernate了?

尚硅谷Java视频_SSH整合&综合案例 视频教程

手动实现教程源码:

链接: https://pan.baidu.com/s/1BK0V1wxA-GQrWco10WEzeg 提取码: 2e3e 

二、SSM

SSM架构,是三层结合所成的框架,分别是Spring、SpringMVC、MyBatis所组成。Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC代表了model、view、controller接收外部请求,进行开发和处理。mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。

1、spring

详细介绍见SSH中spring。

2、SpringMVC

(1)基本概念

属于spring框架的一部分,用来简化MVC架构的web应用程序开发。

(2)SpringMVC的优点

  • 拥有强大的灵活性,非侵入性和可配置性
  • 提供了一个前端控制器dispatcherServlet,开发者无需额外开发控制器对象
  • 分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成
  • 可以自动绑定用户输入,并正确的转换数据类型
  • 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。

(3)SpringMVC的缺点

  • servlet API耦合难以脱离容器独立运行
  • 太过于细分,开发效率低

SpringMVC中put和post如何选择

GET和POST的区别

@RequestParam、@ModelAttribute、@RequestBody的区别

HttpServletResponse response实现文件上传、下载

3、mybatis

(1)基本概念

mybatis是一个简化和实现了java数据持久层的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。

(2)mybatis的优点

  • 与JDBC相比,减少了50%以上的代码量。
  • mybatis是最简单的持久化框架,小巧并且简单易学。
  • mybatis灵活,不会对应用程序或者数据库的限售设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。
  • 提供XML标签,支持编写动态SQL语句(XML中使用if,else)。
  • 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)

(3)mybatis的缺点

  • SQL语句的编写工作量较大,对开发人员的SQL语句编写有一定的水平要求。
  • SQL语句过于依赖数据库,不能随意更换数据库。
  • 拼接复杂SQL语句时不灵活。

【MyBatis 基础知识总结 1】SQL注入

【MyBatis 基础知识总结 2】MyBatis-Plus

MyBatis常用标签和注解(绝对经典)

MyBatis事务管理

MyBatis逆向工程(Example + Criteria简介)

MyBatis xml配置文件详解

尚硅谷SSM整合视频教程雷丰阳雷大神讲解

SpringMVC视频教程--颜群

颜群版SSM整合示例

示例源码:

链接:https://pan.baidu.com/s/1NIDjQ5wRBN9hNc_4G1Nhng 
提取码:18vi

三、Springboot

1、springboot基本概念

springboot是一个全新的框架,简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不再需要定义样板化的配置。此框架不需要配置xml,依赖于maven这样的构建系统。

2、Springboot的优点

(1)减少了大量的开发时间并提高了生产力

(2)避免了编写大量的样板代码,注释和XML配置

(3)解决了spring的弊端

(4)代码少了、配置文件少了、不需要对第三方框架烦恼了、项目精简了,对整个团队的开发和维护来说,更大的节约了成本。

3、springboot的缺点

(1)修复bug较慢,报错时难以定位。

(2)集成度较高,不易于了解底层。

4、springboot总结

简单、快速、方便的搭建项目;对主流开发框架的无配置集成;极大提高了开发、部署效率。

5、springboot和spring的区别

(1)springboot可以建立独立的spring应用程序。

(2)内嵌了如tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再做部署工作。

(3)无需再像spring那样写一堆繁琐的XML配置文件

(4)可以自动配置spring

(5)提供的POM可以简化maven的配置

6、springboot和springMVC的区别

(1)SpringMVC是基于spring的一个MVC框架。

(2)springboot的基于spring的条件注册的一套快速开发整合包。

素小暖讲Spring Boot

Spring Boot常用注解(绝对经典)

SpringBoot_权威教程_spring boot_springboot核心篇+springboot整合篇-_雷丰阳_尚硅谷

SpringBoot最新教程IDEA版【狂神说Java系列】

【Spring Boot 实战】论坛项目【第一季】

四、推荐博文

素小暖讲Spring JdbcTemplate

为什么很多人不愿意用hibernate了?

【原创】纯干货,Spring-data-jpa详解,全方位介绍。

 

 

已标记关键词 清除标记
      掌握基于腾讯人工智能(AI)的车牌识别技术,使用车牌识别技术实现一个完整的停车场管理系统,项目包括网页调用摄像头拍照,车牌拍照识别,上传车牌图片识别,用户管理,车辆管理(临时车与包月车),车辆出场,入场管理,停车费收费管理,按照临时车或包月车自动计算停车费,系统参数设置,修改用户密码及安全退出等功能,该系统采用Jsp技术,使用SSM框架,Mysql数据库,ajax技术及人工智能等相关技术实现。 项目开发技术:java,jsp,mysql,MyBatis,SpringMVC,jquery,ajax,json 项目运行环境:jdk1.7及以上版本,tomcat6.0及以上版本,mysql5.5及以上版本 项目开发工具: 本项目开发工具是Eclipse,也支持myEclipse,Intellij Idea等其他版本开发工具 相关课程学习顺序 本校课程是培养JAVA软件工程师及JSP WEB网络应用程序开发,android工程师的全套课程,课程学习顺序如下: JAVA初级工程师:     1、计算机基础     2、HTML语言基础     3、C语言从入门到精通+贪吃蛇游戏     4、贪吃蛇游戏     5、SQL SERVER数据库基础     6、JAVA从入门到精通+推箱子游戏+QQ即时通讯软件     7、推箱子游戏;     8、仿QQ即时通讯软件; JAVA中级工程师:     9、SQLSERVER数据库高级     10、SQLSERVER从入门到精通(基础+高级)               11、JavaScript从入门到精通,     12、JSP从入门到精通+点餐系统,     13、JSP从入门到精通+在线视频学习教育平台,     14、JSP从入门到精通+大型电商平台;     15、XML从入门到精通,     16、数据结构(JAVA版), JAVA高级工程师:     17、Oracle数据库从入门到精通,     18、ajax+jquery从入门到精通,     19、EasyUI从入门到精通, SSH框架:     20、Struts2从入门到精通课程,     21、Hibernate从入门到精通课程,     22、Spring从入门到精通课程;     23、Echarts从入门到精通,     24、Excel基于POI的导入导出 工作流框架:     25、Activiti流程框架从入门到精通     26、JBPM流程框架从入门到精通 SSM框架:     27、MyBatis从入门到精通     28、Spring MVC从入门到精通 面试题:     29、职业生涯规划及面试题集锦 商业项目:     30、微信公众号在线支付系统     31、微信生活缴费在线支付系统     32、支付宝生活缴费在线支付系统     33、在线考试系统     34、手机订餐管理系统,     35、CRM客户关系管理系统     36、大型房地产CRM销售管理系统     37、CMPP2,CMPP3移动网关系统 人工智能:     38、人脸识别在线考试系统     39、人脸识别系统项目实战     40、车牌识别系统项目实战     41、身份证识别系统项目实战     42、营业执照识别系统项目实战           43、名片识别管理系统
课程介绍 仓库管理系统主要功能有采购入库,采购退货,销售出库,销售退货,仓库盘点,库存报表,Excel导入导出,按钮级权限控制及系统日志等功能,系统采用SpringBoot ,mybatis,easyui,ajax,mssql数据库等技术开发。提供所有源代码下载,系统功能完善,可直接运行。 开发环境 项目开发语言:SpringBoot ,mybatis,easyui,ajax,mssql数据库 项目运行环境:jdk1.8及以上版本,tomcat8.0及以上版本,sql server2005及以上版本 项目开发工具: 本项目开发工具是Intellij Idea 课程目标 掌握SpringBoot等技术,熟悉仓库管理系统主要功能,采购入库,采购退货,销售出库,销售退货,仓库盘点,系统报表,权限控制及日志等 50多门JAVA系列全套课程,包括大一新生到大四毕业的所有JAVA系列技术专业课程,项目实战,商业项目等; 基础课程: JAVA初级工程师: 1、计算机基础 2、HTML语言基础 3、C语言从入门到精通+贪吃蛇游戏 4、贪吃蛇游戏 5、SQL SERVER数据库基础 6、JAVA从入门到精通+推箱子游戏+QQ即时通讯软件 7、推箱子游戏; 8、仿QQ即时通讯软件; JAVA中级工程师: 9、SQLSERVER数据库高级 10、SQLSERVER从入门到精通(基础+高级)  11、JavaScript从入门到精通, 12、JSP从入门到精通+点餐系统, 13、JSP从入门到精通+在线视频学习教育平台, 14、JSP从入门到精通+大型电商平台; 15、XML从入门到精通, 16、数据结构(JAVA版), JAVA高级工程师: 17、Oracle数据库从入门到精通, 18、ajax+jquery从入门到精通, 19、EasyUI从入门到精通, SSH框架: 20、Struts2从入门到精通课程, 21、Hibernate从入门到精通课程, 22、Spring从入门到精通课程; 23、Echarts从入门到精通, 24、Excel基于POI的导入导出 工作流框架: 25、Activiti流程框架从入门到精通 26、JBPM流程框架从入门到精通 SSM框架: 27、MyBatis从入门到精通 28、Spring MVC从入门到精通 29、Spring Boot入门到精通 30、Spring Cloud入门到精通 面试题: 31、职业生涯规划及面试题集锦 商业项目: 32、微信公众号在线支付系统 33、微信生活缴费在线支付系统 34、支付宝生活缴费在线支付系统 35、在线考试系统 36、人脸识别智能考试系统(人工智能AI) 37、仓库管理及质量追溯系统 38、房屋出租管理系统APP(身份证识别) 39、手机订餐管理系统, 40、CRM客户关系管理系统 41、大型房地产CRM销售管理系统 42、CMPP2,CMPP3移动网关系统 43、仓库管理系统(SpringBoot) 44、影院在线售票系统(仿猫眼电影) 人工智能: 45、人脸识别在线考试系统 46、人脸识别系统项目实战 47、车牌识别停车场管理系统 48、身份证识别系统项目实战 49、营业执照识别系统项目实战 50、名片识别管理系统
本课程详细讲解了以下内容:     1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程     2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例     3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题      4.session与cookie问题及application、cookie补充说明及四种范围对象作用域      5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别      6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据      7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)      8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析      9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)     1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)      11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet      12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题      13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove      14.过滤器、过滤器通配符、过滤器链、监听器      15.session绑定解绑、钝化活化      16.以及Ajax的各种应用      17. Idea环境下的Java Web开发
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页