总结起来:
1.hibernate配置要比mybatis复杂的多 , 学习成本也比mybatis高 。mybatis , 简单、高效、灵活 , 但是需要自己维护sql;四、Netty简介
2.hibernate功能强大、全自动、适配不同数据库 , 但是非常复杂 , 灵活性稍差 。
Netty是一个高性能的异步事件驱动的网络通信框架 , Netty对JDK原生NIO进行封装 , 简化了网络服务的开发 。下文会详细讲解
另外 , 同类型的框架还有mina、grizzly , 不过目前使用的相对较少 , 一般不会在面试中出现 , 可以作为兴趣简单了解 。
五、RPC服务
Motan、Dubbo、gRPC都是比较常用的高性能rpc框架 , 可以提供完善的服务治理能力 , java版本的通信层都是基于前面提到的Netty实现 。它们的特点稍后介绍 。
六、其他常用框架
jersy和restEasy都是可以快速开发restful服务的框架 。
和springmvc相比 , 这两个框架都是基于jax-rs标准 , 而springmvcs基于servlet , 使用自己构建的API , 是两个不同的标准 。
shiro框架是一个与spring security类似的开源的权限管理框架 , 用于访问授权、认证、加密及会话管理 。能够支持单机与分布式session管理 。
相比security , shiro更加简单易用 。
本篇文章将重点阐述Spring相关知识点 , 其他框架请期待下一篇
Spring知识点-详解
一、spring基本概念

文章插图
Sping中的基本概念
本文涉及的流程与实现默认都是基于最新的5.x版本 。
spring中的几个重要概念如下:
▌1.IOC
IOC , 就是控制反转 , 如最左边 , 拿公司招聘岗位来举例:
假设一个公司有产品、研发、测试等岗位 。如果是公司根据岗位要求 , 逐个安排人选 , 如图中向下的箭头 , 这是正向流程 。如果反过来 , 不用公司来安排候选人 , 而是由第三方猎头来匹配岗位和候选人 , 然后进行推荐 , 如图中向上的箭头 , 这就是控制反转 。
在spring中 , 对象的属性是由对象自己创建的 , 就是正向流程;如果属性不是对象创建 , 而是由spring来自动进行装配 , 就是控制反转 。这里的DI也就是依赖注入 , 就是实现控制反转的方式 。正向流程导致了对象于对象之间的高耦合 , IOC可以解决对象耦合的问题 , 有利于功能的复用 , 能够使程序的结构变得非常灵活 。
▌2.context上下文和bean
spring进行IOC实现时使用的有两个概念:context上下文和bean 。
如中间图所示 , 所有被spring管理的、由spring创建的、用于依赖注入的对象 , 就叫做一个bean 。Spring创建并完成依赖注入后 , 所有bean统一放在一个叫做context的上下文中进行管理 。
▌3.AOP
AOP就是面向切面编程 。如右面的图 , 一般程序执行流程是从controller层调用service层、然后service层调用DAO层访问数据 , 最后在逐层返回结果 。
这个是图中向下箭头所示的按程序执行顺序的纵向处理 。但是 , 一个系统中会有多个不同的服务 , 例如用户服务、商品信息服务等等 , 每个服务的controller层都需要验证参数 , 都需要处理异常 , 如果按照图中红色的部分 , 对不同服务的纵向处理流程进行横切 , 在每个切面上完成通用的功能 , 例如身份认证、验证参数、处理异常等等、这样就不用在每个服务中都写相同的逻辑了 , 这就是AOP思想解决的问题 。
AOP以功能进行划分 , 对服务顺序执行流程中的不同位置进行横切 , 完成各服务共同需要实现的功能 。
二、spring框架

文章插图
Spring框架组件
上图列出了spring框架主要包含的组件 。这张图来自spring4.x的文档 。目前最新的5.x版本中右面的portlet组件已经被废弃掉 , 同时增加了用于异步响应式处理的WebFlux组件 。
并不需要对所有的组件都详细了解 , 只需重点了解最常用的几个组件实现 , 以及知道每个组件用来实现哪一类功能 。
推荐阅读
- 沈抖详解百度小程序背后逻辑:做了小程序以后,即使大家再来骂我,我认了
- 要想网站排名靠前,robots.txt文件必须写好!详解robots文件
- 这不是心理作用:详解汽车加完油动力变好的原因
- 抖音怎么置顶视频和评论?抖音置顶视频操作步骤详解
- 一文带你详解了解Tomcat的Server配置
- 以MySQL为例,详解数据库索引原理及深度优化
- 详解 Linux 中的虚拟文件系统
- 常见交通标志详解
- 详解sqlplus设定行大小、页大小、字符列格式、数字列格式、清屏
- 2019年Facebook广告创建教程详解
