-
开发框架面试路线最全整理(附面试题精选及答案)
开发框架面试路线最全整理,附开发框架高频必考面试题及答案。 搞定开发框架面试题,看这一篇就够了,不用四处找资料,节约大量时间。 1 开发框架面试题及答案 Spring Spring 中的 AOP 底层实现原理 AOP 是什么 IOC创建对象的几种方式 Spring 依赖注入方式 解释 Spring 框架中 bean 的生命周期 Spring 框架中的单例 bean 是线程安全的吗 Sprin…... -
开发框架学习进阶路线及资料(附大厂面试题合集)
小作坊式的开发方式,什么事情都需要自己来干,效率低、容易出错。 工厂式的开发方式,是组件式装配,特点就是简易高效,让我们可以更专注于业务逻辑。 而开发框架,就相当于从 小作坊 到 工厂 的一次升级。 如果想要更高效优质地完成编码工作,通过 Java 面试,开发框架是必知必会的。 我最新总结的这份开发框架学习进阶路线及资料,包含了开发框架涉及的所有核心知识点,可以用来参考学习、构建知识体系、复盘技术…... -
Spring Cloud 的核心特性有哪些
参考答案 Spring Cloud 的核心特性: 分布式/版本化配置。 服务注册和发现。 路由。 服务和服务之间的调用。 负载均衡。 断路器。 分布式消息传递。 以上,是Spring Cloud面试题【Spring Cloud 的核心特性有哪些】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---... -
Mybatis 的一级缓存、二级缓存是什么,以及工作模式
参考答案 1. 一级缓存的概念、工作模式 1.1 一级缓存的概念 基于 PerpetualCache 的 HashMap 本地缓存。 其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将清空,默认打开一级缓存。 1.2 一级缓存的工作模式 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,…... -
IBatis 和 MyBatis,在核心处理类分别叫什么
参考答案 IBatis里面的核心处理类交SqlMapClient。 MyBatis里面的核心处理类叫做SqlSession。 以上,是Java面试题【IBatis和MyBatis在核心处理类分别叫什么】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---... -
Mybatis 相比 IBatis,比较大的几个改进是什么
参考答案 1. 有接口绑定,包括注解绑定sql和xml绑定Sql。 2. 动态sql由原来的节点配置变成OGNL表达式。 3. 在一对一、一对多的时候,引入了association。 4. 在一对多的时候,引入了collection 节点。 但是,都是在resultMap里面配置。 以上,是Java面试题【Mybatis比IBatis比较大的几个改进是什么】的参考答案。 输出,是最好的学习…... -
MyBatis 实现一对多有几种方式,具体怎么操作
参考答案 MyBatis实现一对多有两种方式: 联合查询 嵌套查询 MyBatis实现一对多的操作: 联合查询是几个表联合查询,只查询一次,通过在resultMap里面配置collection节点配置一对多的类就可以完成。 嵌套查询是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。 …... -
为什么说Mybatis是半自动ORM映射工具,它与全自动的区别在哪里
参考答案 Hibernate属于全自动ORM映射工具。 使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。 而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。 Mybatis与全自动的区别在于: association是一对一关联查询; collection是一对多关联查询。 …... -
MyBatis 编程步骤是什么样的
参考答案 MyBatis编程步骤: 1. 创建SqlSessionFactory; 2. 通过SqlSessionFactory创建SqlSession; 3. 通过sqlsession执行数据库操作; 4. 调用session.commit()提交事务; 5. 调用session.close()关闭会话。 以上,是Java面试题【MyBatis编程步骤是什么样的】的参考答案。 输出,是最…... -
JDBC 编程有哪些不足之处,MyBatis 是如何解决这些问题的
参考答案 JDBC编程的不足之处,以及MyBatis解决JDBC不足之处的方式: 1. 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。 解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。 2. Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。 解决:将Sql语句配置…... -
Mybatis 支持延迟加载吗,实现原理是什么
参考答案 Mybatis支持延迟加载。 但是,Mybatis仅支持association关联对象和collection关联集合对象的延迟加载。association指的就是一对一,collection指的就是一对多查询。 在Mybatis配置文件中,可以配置是否启用延迟加载lazyLoadingEnabled=true|false。 延迟加载的基本原理: 使用CGLIB创建目标对象的代理对象。 当…... -
Mybatis 是如何将 sql 执行结果封装为目标对象并返回的,都有哪些映射形式
参考答案 第一种是使用标签,逐一定义列名和对象属性名之间的映射关系。 第二种是使用sql列的别名功能,将列别名书写为对象属性名,例如T_NAME AS NAME,对象属性名一般是name,小写。 但是列名不区分大小写,Mybatis会忽略列名大小写,智能找到与之对应对象属性名,可以写成T_NAME AS NaMe,Mybatis一样可以正常工作。 有了列名与属性名的映射关系后,Mybatis通过反…... -
Mybatis 动态 sql 是做什么的,都有哪些动态 sql,简述下动态 sql 的执行原理
参考答案 1. Mybatis动态sql的作用 Mybatis动态sql可以让我们在Xml映射文件内,以标签的形式编写动态sql,完成逻辑判断和动态拼接sql的功能。 2. Mybatis动态sql的类型 Mybatis提供了9种动态sql标签 trim where set foreach if choose when otherwise bind 3. Mybatis动态sql的执行原理 使用O…... -
简述 Mybatis 的插件运行原理,以及如何编写一个插件
参考答案 Mybatis仅可编写、针对下面4种接口的插件: ParameterHandler ResultSetHandler StatementHandler Executor Mybatis使用JDK的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能。 每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是InvocationHandler的invoke()方法。 当然,只会拦…... -
Mybatis 是如何进行分页的?分页插件的原理是什么?
参考答案 1. Mybatis如何分页 Mybatis使用RowBounds对象进行分页。 它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。 2. 分页插件的基本原理 分页插件的原理是使用Mybatis提供的插件接口,实现自定义插件。 在插件的拦截方法内拦截待执行的sql,然后重写sql,根…... -
Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签
参考答案 Xml映射文件中,除了常见的select|insert|updae|delete标签之外。 还有<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,以及动态sql的9个标签trim、where、set、foreach、if、choose、when、otherwise、bi…... -
#{}和${}的区别是什么
参考答案 #{}和${}的概念: ${} 是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,例如${driver}会被静态替换为com.mysql.jdbc.Driver。 #{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,例…... -
Dubbo的使用方法
参考答案 Dubbo的使用方法: Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可。Dubbo基于Spring的Schema扩展进行加载,如果不想使用Spring配置,可通过API的方式进行调用(不推荐)。 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置…... -
Dubbo的架构是怎样的
参考答案 一、Dubbo的架构图 二、节点角色说明 Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: 服务运行容器。 三、调用关系说明 0 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注…... -
Spring Boot 和 Spring Cloud 有哪些区别
参考答案 Spring boot和Spring cloud的区别: 1. Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的云应用开发工具。 2. Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架。 3. Spr…... -
Spring Cloud 有什么特性
参考答案 Spring Cloud的特性: 约定优于配置。 适用于各种环境开发,部署在PC Server 或各种云环境均可。 隐藏了组件的复杂性,并提供声明式,无xml的配置方式。 开箱即用。 轻量级的组件。Spring Cloud整合的组件大多比较轻量,例如Eureka、Zuul等。 组件丰富、功能齐全。 Spring Cloud 为微服务架构提供了非常完整的支持,例如配置管理、服务发现、断路器…... -
什么是 Spring Cloud
参考答案 springcloud的概念 springcloud在springboot的基础上提供了一系列针对分布式场景的基础设施。 SpringCloud是一系列框架的有序集合,它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发。 它包含了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等内容,它用 SpringBoot的开发风格做到一键启动和部署。 Sprin…...