Spring
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)
Spring框架的核心特性包括依赖注入 (Dependency Injection ,DI)、面向切面编程 (Aspect-Oriented Programming,AOP)和事务管理。
核心模块:
-
Core Container:包含核心容器、Bean工厂、AOP、事件等模块。
-
Data Access/Integration:包含JDBC、ORM、OXM、JMS和事务管理等模块。
-
Web:包含Web MVC、Web Socket等模块。
-
Test:提供支持单元测试和集成测试的工具。
SpringMVC
SpringMVC是Spring框架的一部分,专门用来构建Web应用程序。
SpringMVC遵循模型-视图-控制器 (Model-View-Controller,MVC)设计模式,将业务逻辑、数据展示和用户输入分离,提高了代码的可维护性和可扩展性。
主要组件:
-
DispatcherServlet:前端控制器,负责接收所有请求并分发给相应的处理器。
-
HandlerMapping:映射请求到具体的处理器。
-
Controller:处理具体的业务逻辑。
-
ModelAndView:封装模型数据和视图信息。
-
ViewResolver:解析视图名称,找到对应的视图实现。
-
View:负责渲染模型数据,生成最终的响应内容。
SpringBoot
SpringBoot是基于Spring框架的一个子项目,旨在简化新Spring应用的初始搭建以及开发过程。
SpringBoot通过"约定优于配置 "(Convention over Configuration)的理念,极大地减少了配置的工作量,使得开发者可以快速启动和运行应用程序。
主要特性:
-
自动配置:根据添加的依赖自动配置Spring应用。
-
起步依赖:通过starter POMs简化Maven或Gradle配置。
-
嵌入式服务器:内置Tomcat、Jetty或Undertow,无需部署WAR文件。
-
生产就绪功能:提供健康检查、外部化配置、度量指标等生产环境所需的功能。
-
命令行界面:提供CLI工具,方便快速编写和运行Spring应用。
Mybatis
Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。
Mybatis避免 了几乎所有的JDBC代码 和手动设置参数以及获取结果集。
Mybatis通过简单的xml或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects)映射成数据库中的记录。
主要特点:
-
简单易学:
- MyBatis 的 API 设计简洁,学习曲线平缓,适合初学者快速上手。
-
灵活的 SQL 映射:
-
支持动态 SQL,可以根据条件生成不同的 SQL 语句。
-
支持存储过程调用,满足复杂业务需求。
-
-
强大的映射功能:
-
可以将查询结果自动映射到 Java 对象,支持复杂的结果映射。
-
支持一对一、一对多等关系映射。
-
-
与数据库无关:
- 支持多种数据库,如 MySQL、Oracle、SQL Server 等。
-
良好的性能:
-
内置缓存机制,提高查询性能。
-
支持延迟加载,减少不必要的数据加载。
-
小结
-
Spring:一个全面的企业级应用框架,提供依赖注入、AOP、事务管理等核心功能。
-
Spring Boot:基于Spring框架,通过自动配置和起步依赖简化应用开发,提供快速启动和生产就绪功能。
-
Spring MVC:Spring框架的一部分,专门用于构建Web应用程序,遵循MVC设计模式。
-
**Mybatis:**MyBatis 是一个轻量级的持久层框架,通过简单的 XML 或注解配置,可以灵活地执行 SQL 语句,并将结果自动映射到 Java 对象。