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 对象。

相关推荐
sg_knight24 分钟前
Spring Cloud与RabbitMQ深度集成:从入门到生产级实战
java·spring boot·spring·spring cloud·消息队列·rabbitmq·stream
Chan161 小时前
批处理优化:从稳定性、性能、数据一致性、健壮性、可观测性五大维度,优化批量操作
java·spring boot·后端·性能优化·java-ee·intellij-idea·优化
Bug退退退1231 小时前
Java 网络流式编程
java·服务器·spring·sse
汤姆yu2 小时前
基于springboot的家具商城销售系统
java·spring boot·后端
ruleslol2 小时前
SpringBoot13-小细节
spring boot·mybatis
不会写代码的加加3 小时前
告别重构噩梦:基于 Oinone 实现单体到微服务的平滑演进
spring boot·分布式
默默coding的程序猿3 小时前
1.单例模式有哪几种常见的实现方式?
java·开发语言·spring boot·spring·单例模式·设计模式·idea
安逸sgr4 小时前
SpringMVC启动流程
java·jvm·spring·spring cloud·eclipse·tomcat·maven
科兴第一吴彦祖5 小时前
基于Spring Boot + Vue 3的乡村振兴综合服务平台
java·vue.js·人工智能·spring boot·推荐算法
纤瘦的鲸鱼5 小时前
Spring Gateway 全面解析:从入门到进阶实践
java·spring·gateway