本系列用来记录经常使用java框架的基本概念、区别及联系,也记录了在使用过程当中,遇到的一些问题的解决方法,方便本身查看,也方便你们查阅。html
欲速则不达,欲达则欲速!前端
1、SSHjava
一、基本概念程序员
SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成,是当前比较流行的java web开源框架。web
集成SSH框架的系统从职责上分为(Struts2--控制;spring--解耦;hibernate--操做数据库),以帮助开发人员在短时间内搭建结构清晰、可服用好、维护方便的web应用程序。使用Struts做为系统的总体基础框架,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用hibernate框架对持久层提供支持,spring作管理,管理Struts和hibernate。spring
二、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的优点
(4)Struts2的缺点:
二、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的优势
(4)spring的缺点
三、hibernate
(1)基本概念
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了很是轻量级的对象封装,它将POJO与数据库表创建映射关系,是一个全自动的orm框架,hibernate能够自动生成SQL语句,自动执行,使得Java程序员能够为所欲为的使用对象编程思惟来操纵数据库。 Hibernate能够应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
(2)hibernate的核心构成和执行流程图
(3)hibernate的优势
一级缓存:是session级别的缓存,一个session作了一个查询操做,它会把这个操做的结果放到一级缓存中,若是短期内这个session又作了同一个操做,那么hibernate直接从一级缓存中拿出,而不会去连数据库取数据。
二级缓存:是sessionFactory级别的缓存,就是查询的时候会把结果缓存到二级缓存中,若是同一个sessionFactory建立的某个session执行了相同的操做,hibernate就会从二级缓存中拿出结果,而不会再去链接数据库。
(4)hibernate的缺点
手动实现教程源码:
连接: https://pan.baidu.com/s/1BK0V1wxA-GQrWco10WEzeg 提取码: 2e3e
2、SSM
SSM架构,是三层结合所成的框架,分别是Spring、SpringMVC、MyBatis所组成。Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC表明了model、view、controller接收外部请求,进行开发和处理。mybatis是基于jdbc的框架,主要用来操做数据库,而且将业务实体和数据表联系起来。
一、spring
详细介绍见SSH中spring。
二、SpringMVC
(1)基本概念
属于spring框架的一部分,用来简化MVC架构的web应用程序开发。
(2)SpringMVC的优势
(3)SpringMVC的缺点
三、mybatis
(1)基本概念
mybatis是一个简化和实现了java数据持久层的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。
(2)mybatis的优势
(3)mybatis的缺点
3、Springboot
一、springboot基本概念
springboot是一个全新的框架,简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员再也不须要定义样板化的配置。此框架不须要配置xml,依赖于maven这样的构建系统。
二、Springboot的优势
(1)减小了大量的开发时间并提升了生产力
(2)避免了编写大量的样板代码,注释和XML配置
(3)解决了spring的弊端
(4)代码少了、配置文件少了、不须要对第三方框架烦恼了、项目精简了,对整个团队的开发和维护来讲,更大的节约了成本。
三、springboot的缺点
(1)修复bug较慢,报错时难以定位。
(2)集成度较高,不易于了解底层。
四、springboot总结
简单、快速、方便的搭建项目;对主流开发框架的无配置集成;极大提升了开发、部署效率。
五、springboot和spring的区别
(1)springboot能够创建独立的spring应用程序。
(2)内嵌了如tomcat,Jetty和Undertow这样的容器,也就是说能够直接跑起来,用不着再作部署工做。
(3)无需再像spring那样写一堆繁琐的XML配置文件
(4)能够自动配置spring
(5)提供的POM能够简化maven的配置
六、springboot和springMVC的区别
(1)SpringMVC是基于spring的一个MVC框架。
(2)springboot的基于spring的条件注册的一套快速开发整合包。
推荐博文
【原创】纯干货,Spring-data-jpa详解,全方位介绍。