《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
-
方便程序测试:spring提供了Junit4的支持,可以通过注解方便的测试spring程序。
-
降低java EE API的使用难度:spring对java EE开发中非常难用的一些API(比如JDBC),都提供了封装,使这些API应用难度大大降低。
-
方便集成各种优秀框架:spring内部提供了对各种优秀框架(如Struts、mybatis)的直接支持。
-
支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无须手动编程。
(4)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原则,导致配置过于复杂,遇到大项目,维护问题不断。
手动实现教程源码:
链接: 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耦合难以脱离容器独立运行
-
太过于细分,开发效率低
@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 基础知识总结 2】MyBatis-Plus
MyBatis逆向工程(Example + Criteria简介)
示例源码:
链接: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全套教学资料
Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。
目录:
部分内容:
Spring源码
- 第一部分 Spring 概述
- 第二部分 核心思想
- 第三部分 手写实现 IoC 和 AOP(自定义Spring框架)
- 第四部分 Spring IOC 高级应用
基础特性
高级特性 - 第五部分 Spring IOC源码深度剖析
设计优雅
设计模式
注意:原则、方法和技巧 - 第六部分 Spring AOP 应用
声明事务控制 - 第七部分 Spring AOP源码深度剖析
必要的笔记、必要的图、通俗易懂的语言化解知识难点
脚手框架:SpringBoot技术
它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。
Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
- SpringBoot入门
- 配置文件
- 日志
- Web开发
- Docker
- SpringBoot与数据访问
- 启动配置原理
- 自定义starter
微服务架构:Spring Cloud Alibaba
同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
- 微服务架构介绍
- Spring Cloud Alibaba介绍
- 微服务环境搭建
- 服务治理
- 服务容错
- 服务网关
- 链路追踪
- ZipKin集成及数据持久化
- 消息驱动
- 短信服务
- Nacos Confifig—服务配置
- Seata—分布式事务
- Dubbo—rpc通信
Spring MVC
目录:
部分内容:
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
分布式事务
- Dubbo—rpc通信
[外链图片转存中…(img-yGjnexLW-1714689485630)]
[外链图片转存中…(img-1C24I7QK-1714689485630)]
Spring MVC
目录:
[外链图片转存中…(img-9jc4fJsM-1714689485631)]
[外链图片转存中…(img-rAcym9xQ-1714689485631)]
[外链图片转存中…(img-RUJpYzKn-1714689485631)]
部分内容:
[外链图片转存中…(img-asRy9p3t-1714689485631)]
[外链图片转存中…(img-PX2cbFHz-1714689485632)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!