一.宋承宪1.基本概念SSH框架是JAVA EE中三个框架的集成,由Struts、Spring和Hibernate框架组成,是java web流行的开源框架。集成SSH框架的系统分为(Struts2 & # 8211控制;春天&#
一.宋承宪
1.基本概念
SSH框架是JAVA EE中三个框架的集成,由Struts、Spring和Hibernate框架组成,是java web流行的开源框架。
集成SSH框架的系统分为(Struts2 & # 8211控制;春天–脱钩;冬眠–操作数据库)来帮助开发者在短时间内搭建一个结构清晰、易拿易维护的web应用。Struts作为系统的整体基础框架,负责MVC的分离。在Struts框架的模型部分,控制业务跳转,使用hibernate框架支持持久层。spring管理Struts和hibernate。
2、支柱2
(1)基本概念
Struts2是基于MVC设计模式的web应用框架,相当于一个servlet。在MVC设计模式中,Struts2作为控制器来建立模型和视图之间的数据交互。Struts2集成了webwork和Struts1。Struts2以webwork为核心,使用拦截器机制处理用户请求。这种设计使得业务逻辑控制器与servletAPI完全分离。
(2)2)struts 2框架的运行结构
打开百度APP看高清图片
分析:客户端向服务器发送请求(HttpServletRequest)。服务器收到请求后,先进入web.xml配置文件,看是否配置了过滤器,发现有带Struts2的过滤器,然后找到struts.xml配置文件,在struts.xml配置文件中定义一个动作,再找到action类。该类继承ActionSupport接口,实现execute()方法,并向struts.xml配置文件返回字符串“success”。struts.xml配置文件的动作默认情况下会调用action类的execute()方法。当结果接收到返回的字符串时,结果将调用您指定的jsp页面来呈现结果,并最终响应客户端。
(3)支柱2的优点
实现了MVC模式,层次结构清晰,程序员只需要关注业务逻辑的实现。
丰富的标签库大大提高了开发效率。
Struts2提供了丰富的拦截器实现。
通过配置文件,可以掌握整个系统各部分之间的关系。
异常处理机制,只需要在配置文件中配置异常映射来响应异常。
Struts2具有很高的可扩展性。
面向部分编程的思想也很好地体现在Struts2中。
它反映了拦截器的使用。拦截器是一个个小的功能模块。用户可以将这些拦截器组合成一个大的拦截器。这个合成的拦截器就像一个单独的拦截器一样,只需要把它配置成一个动作。
(4)4)支柱2的缺点:
验证是复杂的,并且多个字段返回不同的错误。
安全性太低
获取参数比较麻烦。
2、春天
Spring是一个开源开发框架,一个轻量级控制反转(IoC)和面向方面(AOP)的容器框架。
Spring主要用于开发java应用和构建J2EE平台的web应用。其核心是提供一种新的机制来管理业务对象及其依赖关系。
(2)2)弹簧流程图
解析:在Struts结构图的基础上增加了spring的流程图,在web.xml配置文件中增加了spring的监听器,在struts.xml配置文件中增加了监听器。
“& lt常量名称= ”struts.objectFactory & # 8221value = & # 8221春天”/>
它告诉Struts2 runtime使用spring来管理对象,spring在里面主要做的就是注入实例,所有需要类的实例都由spring来管理。
(3)弹簧的优点
容器:spring是一个容器,它包含并管理对象的生命周期和配置。您可以配置如何创建每个bean。基于一个可配置的原型,您的bean可以创建一个单独的实例,或者在您每次需要时生成一个新的实例。
AOP支持:Spring提供了对AOP的支持,允许一些常见的任务,比如安全、事物、日志等。,集中处理,从而提高程序的可重用性。
轻量级框架:spring是一个轻量级框架,它的基本版本是关于2M的。
控制:spring通过控制反转实现松耦合。它们给了它们依赖,而不是对象本身,这有利于解耦和简化开发。
方便的程序测试:spring提供Junit4支持,通过注释测试spring程序很方便。
降低java EE API的使用难度:spring为一些在java EE开发中非常难以使用的API(如JDBC)提供了封装,大大降低了这些API的应用难度。
方便各种优秀框架的集成:spring内部提供了对各种优秀框架(如Struts、mybatis)的直接支持。
支持声明式事务处理:事务管理只需要通过配置就可以完成,不需要手工编程。
(4)弹簧的缺点
依赖,反思影响过程。
过于依赖设计模式。
控制器太灵活了。
不支持分布式应用程序。
春天的常见评论(绝对经典)
3、冬眠
Hibernate是一个开源的对象关系映射框架,它用一个非常轻量级的对象封装了JDBC。它建立了POJO和数据库表之间的映射关系,是一个全自动的orm框架。Hibernate可以自动生成SQL语句并自动执行,让Java程序员可以随意用对象编程的思维操纵数据库。Hibernate可以用在任何使用JDBC的场合,不仅可以用在Java客户端程序中,也可以用在Servlet/JSP的Web应用中。最具革命性的是,Hibernate可以取代EJB J2EE架构中的CMP,完成数据持久化的重任。
(2)hibernate的核心组成和执行流程图
(3)hibernate的优点(3)休眠的优势
封装了JDBC访问数据库的代码,大大简化了数据访问层繁琐的重复代码。
Hibernate是一个优秀的ORM实现。他大大简化了DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更加面向对象。
持久性是具有持久状态和业务功能的单线程对象,它的生存期很短。这些对象可能是普通的javabeans/POJO,(POJO概念,plain普通java对象,simple java对象,可以简单理解为简单的实体类实体。)此对象不实现第三方框架或接口。唯一特别的是,它们与会话相关联。一旦该会话关闭,这些对象将离开持久状态,以便它们可以被应用程序的任何层自由使用。
事务应用用于指定原子操作单元作用域的对象,单线程,生命周期短。它从具体的JDBC、JTA(java transaction API,JTA允许应用程序执行分布式事务处理,访问和更新两个或多个网络计算机资源中的数据,JDBC驱动程序的JTA支持大大增强了数据访问能力)和CORBA(公共对象请求代理架构)中抽象出应用程序。通用请求代理架构,简而言之,CORB允许应用程序与其他应用程序进行通信)。在某些情况下,一个会话可能包含多个事务对象,这是打开和关闭事务边界所必需的。
它是非侵入性的,重量轻。
它具有良好的可移植性,支持各种数据库。如果更改数据库,可以只更改配置文件中的配置,而不更改hibernate代码。
缓存机制,提供一级缓存和二级缓存。
一级缓存:它是一个会话级缓存。当会话进行查询操作时,它会将该操作的结果放入一级缓存中。如果会话在短时间内再次做同样的操作,那么hibernate会直接从一级缓存中取出,而不是去数据库取数据。
二级缓存:是sessionFactory级别的缓存,即查询时会将结果缓存在二级缓存中。如果由同一个sessionFactory创建的会话执行相同的操作,hibernate将从二级缓存中取出结果,而不是连接到数据库。
(4)冬眠的缺点
持久层的封装过于完整,导致开发者无法优化SQL,也无法灵活应用原生SQL。
批量数据处理较弱。
在框架中使用ORM原理会导致过于复杂的配置、庞大的项目和持续的维护问题。
Hibernate实现CRUD(附项目源代码)
第二,SSM
SSM架构是由三层组成的框架,分别是Spring、SpringMVC和MyBatis。Spring依靠注入来管理所有层,通过面向方面的编程来管理事务、日志和权限。SpringMVC代表模型、视图和控制器来接收外部请求,开发和处理它们。Mybatis是一个基于jdbc的框架,主要用于操作数据库,连接业务实体和数据表。
1、春天
详见SSH中的spring。
2、SpringMVC
它是spring框架的一部分,用于简化MVC架构的web应用开发。
(2)SpringMVC的优势
它是灵活的、非侵入性的和可配置的。
提供了前端控制器dispatcherServlet,开发者不需要开发额外的控制器对象。
分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器。每个函数都由一个特殊的对象实现。
您可以自动绑定用户输入并正确转换数据类型。
可重用的业务代码:您可以使用现有的业务对象作为命令或表单对象,而无需扩展特定框架的基类。
(3)SpringMVC的缺点
Servlet耦合很难独立于容器运行。
细分太多,开发效率低。
如何在SpringMVC中选择put和post
GET和POST的区别
@RequestParam、@ModelAttribute和@RequestBody的区别
HttpServletResponse响应实现文件上传和下载
3、mybatis
Mybatis是一个开源框架,它简化并实现了java数据持久层。它抽象了大量的JDBC冗余代码,提供了简单易用的API和数据库交互。
(2)mybatis的优势
与JDBC相比,它减少了50%以上的代码量。
Mybatis是最简单的持久化框架,小巧易学。
Mybatis是灵活的,不会对应用程序或数据库的限制销售设计施加任何影响。SQL用XML编写,与程序代码完全分离,降低耦合度,便于统一管理和优化,可复用。
提供XML标记是为了支持动态SQL语句的编写(如果,在XML中使用else)。
提供映射标签,支持对象与数据库之间ORM字段关系的映射(映射关系可以用XML配置,也可以使用标注)。
(3)mybatis的缺点
写SQL语句的工作量大,要求开发人员写SQL语句有一定的水平。
SQL语句太依赖数据库,不能随意更改数据库。
在拼接复杂的SQL语句时不够灵活。
第三,跳羚
1.跳羚的基本概念
Springboot是一个全新的框架,它简化了Spring的初始设置和开发过程,使用特定的方式进行配置,让开发者不再需要定义样板配置。这个框架不需要配置xml,而是依赖于maven这样的构建系统。
2.跳羚的优势
(1)减少了大量的开发时间,提高了生产率。
(2)避免编写大量样板代码、注释和XML配置。
(spring的弊端已经解决。
(4)代码少,配置文件少,不用担心第三方框架,项目流水化,为整个团队的开发和维护节省了更多的成本。
3.跳羚队的缺点
(1)修复bug慢,报错时定位困难。
(2)集成程度高,不容易理解底层。
4.跳羚概述
简单、快捷、方便的建设项目;主流开发框架的未配置集成;大大提高开发和部署的效率。
5.跳靴和弹簧的区别
(1)springboot可以建立独立的spring应用程序。
(tomcat、Jetty、Undertow等嵌入式容器,也就是说不需要任何部署工作就可以直接运行。
(3)不需要像spring一样写一堆复杂的XML配置文件。
(4)弹簧可以自动配置。
(5)提供的POM可以简化maven的配置。
6.springboot和springMVC的区别
(1)springMVC是基于Spring的MVC框架。
(2)一套基于2)springboot的条件注册的快速开发集成包。