Spring技术生态体系

从企业级开发框架到现代微服务架构的全栈解决方案

2003
Spring 诞生
2007
Spring MVC
2014
Spring Boot

Spring Framework

企业级应用开发的基石

Spring Framework是一个开源的Java/Java EE全功能栈应用程序框架,由Rod Johnson于2003年创建,旨在解决企业应用开发的复杂性。

核心特性:

  • 控制反转(IoC) - 管理对象的创建和生命周期,实现松耦合
  • 依赖注入(DI) - 自动处理对象间的依赖关系
  • 面向切面编程(AOP) - 分离横切关注点(日志、事务等)
  • 数据访问抽象 - 统一JDBC、ORM等数据访问技术
  • 模块化设计 - 按需选择模块,避免臃肿

Spring的核心价值在于它通过依赖注入实现了组件之间的松耦合,通过AOP实现了横切关注点的模块化,大大提高了代码的可维护性和可测试性。

Spring MVC

灵活强大的Web框架

Spring MVC是基于Spring框架的Web MVC框架,提供了一种清晰的分离视图、控制器和模型的Web开发方式。

核心组件:

  • DispatcherServlet - 前端控制器,统一处理请求
  • HandlerMapping - 请求到处理器的映射
  • Controller - 处理业务逻辑,返回ModelAndView
  • ViewResolver - 解析逻辑视图名为实际视图
  • 视图技术 - 支持JSP、Thymeleaf等多种视图

Spring MVC通过清晰的职责分离,使Web层开发更加结构化。它不绑定特定视图技术,可以无缝集成JSP、Thymeleaf、FreeMarker等多种模板引擎。

Spring Boot

现代应用开发的加速器

Spring Boot是由Pivotal团队于2014年推出的框架,旨在简化Spring应用的初始搭建和开发过程。

革命性特性:

  • 自动配置 - 基于依赖自动配置应用程序
  • 起步依赖 - 简化构建配置的依赖管理
  • 内嵌服务器 - 内置Tomcat、Jetty或Undertow
  • Actuator - 提供生产级监控和管理端点
  • 约定优于配置 - 减少样板代码和XML配置

Spring Boot遵循"约定优于配置"原则,通过自动配置和起步依赖大幅减少了开发配置工作。它使开发者能够快速创建独立运行、生产级别的Spring应用程序。

Spring技术栈对比

特性 Spring Framework Spring MVC Spring Boot
核心目的 企业级应用开发框架 Web MVC实现 简化Spring应用开发
配置方式 XML或Java配置 XML或Java配置 自动配置+Java配置
依赖管理 手动管理 手动管理 起步依赖(Starter POMs)
服务器部署 需外部服务器 需外部服务器 内嵌服务器
项目搭建 复杂 复杂 简单(Spring Initializr)
适用场景 大型企业级系统 传统Web应用 微服务、云原生应用
Spring Boot应用示例
@SpringBootApplication
public class DemoApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    
    @RestController
    @RequestMapping("/api")
    public class DemoController {
        
        @GetMapping("/hello")
        public String hello() {
            return "Spring Boot应用已成功运行!";
        }
    }
}