Java 十大常用框架详解
一、Spring MVC
Spring Web MVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架。它使用了 MVC 架构模式的思想,将 Web 层进行职责解耦,基于请求 - 响应模型,旨在简化日常 Web 开发。
核心组件
- 模型(Model):封装了应用程序的数据,通常由 POJO 组成。
- 视图(View):负责呈现模型数据,生成 HTML 输出供客户端浏览器解释。
- 控制器(Controller):负责处理用户请求,建立适当的模型,并传递给视图渲染。
Spring Web MVC 的核心是围绕 DispatcherServlet 设计的,它处理所有的 HTTP 请求和响应。
请求处理流程
- 用户发送请求至前端控制器(DispatcherServlet)。
- 前端控制器根据请求信息(如 URL)选择具体的页面控制器进行处理。
- 页面控制器接收请求后,收集绑定请求参数到命令对象,进行验证,然后委托给业务对象处理。
- 业务处理完毕后返回 ModelAndView(包含模型数据和逻辑视图名)。
- 前端控制器根据逻辑视图名选择相应的视图进行渲染。
- 前端控制器将最终响应返回给用户。
二、Spring
Spring 是一个开源框架,为了解决企业应用开发的复杂性而创建。
1. IOC 容器
IOC(Inversion of Control,控制反转)容器具有依赖注入功能。它负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。在 Spring 中,BeanFactory 是 IOC 容器的实际代表者。应用程序无需直接在代码中 new 相关的对象,而是由 IOC 容器进行组装。
2. AOP
AOP(Aspect-Oriented Programming,面向切面编程)将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来。这有助于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
典型应用场景:
- Authentication(权限)
- Caching(缓存)
- Error handling(错误处理)
- Logging, tracing, profiling and monitoring(记录跟踪、优化、校准)
- Transactions(事务)
三、MyBatis
MyBatis 是支持普通 SQL 查询、存储过程和高级映射的优秀持久层框架。它消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。
总体流程
- 加载配置并初始化:触发条件为加载配置文件。将 SQL 的配置信息加载成为一个个 MappedStatement 对象,存储在内存中。
- 接收调用请求:调用 MyBatis 提供的 API,传入 SQL ID 和参数对象。
- 处理操作请求:
- 根据 SQL ID 查找对应的 MappedStatement 对象。
- 解析 MappedStatement 对象,得到最终要执行的 SQL 和执行参数。
- 获取数据库连接,执行 SQL 并得到结果。
- 根据结果映射配置对执行结果进行转换处理。
- 释放连接资源。
- 返回处理结果:将最终的处理结果返回。
MyBatis 最强大的特性之一是动态语句功能,解决了手动拼接 SQL 的痛苦。
四、Dubbo
Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。
核心特性
- 透明化的远程方法调用:像调用本地方法一样调用远程方法,只需简单配置,无 API 侵入。


