Spring、SpringMVC、SpringBoot、Mybatis小结

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)映射成数据库中的记录。

主要特点:

  1. 简单易学

    • MyBatis 的 API 设计简洁,学习曲线平缓,适合初学者快速上手。
  2. 灵活的 SQL 映射

    • 支持动态 SQL,可以根据条件生成不同的 SQL 语句。

    • 支持存储过程调用,满足复杂业务需求。

  3. 强大的映射功能

    • 可以将查询结果自动映射到 Java 对象,支持复杂的结果映射。

    • 支持一对一、一对多等关系映射。

  4. 与数据库无关

    • 支持多种数据库,如 MySQL、Oracle、SQL Server 等。
  5. 良好的性能

    • 内置缓存机制,提高查询性能。

    • 支持延迟加载,减少不必要的数据加载。

小结

  • Spring:一个全面的企业级应用框架,提供依赖注入、AOP、事务管理等核心功能。

  • Spring Boot:基于Spring框架,通过自动配置和起步依赖简化应用开发,提供快速启动和生产就绪功能。

  • Spring MVC:Spring框架的一部分,专门用于构建Web应用程序,遵循MVC设计模式。

  • **Mybatis:**MyBatis 是一个轻量级的持久层框架,通过简单的 XML 或注解配置,可以灵活地执行 SQL 语句,并将结果自动映射到 Java 对象。

相关推荐
陌殇殇3 小时前
SpringBoot整合SpringCache缓存
spring boot·redis·缓存
小林学习编程5 小时前
Springboot + vue + uni-app小程序web端全套家具商场
前端·vue.js·spring boot
ladymorgana6 小时前
【Spring boot】tomcat Jetty Undertow对比,以及应用场景
spring boot·tomcat·jetty
IT_10246 小时前
Spring Boot项目开发实战销售管理系统——系统设计!
大数据·spring boot·后端
DCTANT7 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
Touper.7 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
一只叫煤球的猫9 小时前
手撕@Transactional!别再问事务为什么失效了!Spring-tx源码全面解析!
后端·spring·面试
喜欢敲代码的程序员9 小时前
SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:项目搭建(一)
spring boot·mysql·elementui·vue·mybatis
赤橙红的黄9 小时前
自定义线程池-实现任务0丢失的处理策略
数据库·spring
华子w90892585910 小时前
基于 SpringBoot+Vue.js+ElementUI 的 “花开富贵“ 花园管理系统设计与实现7000字论文
vue.js·spring boot·elementui