Spring 框架和 Spring Boot 是现代 Java 开发中非常重要的两个技术。Spring 框架是一个开源的 Java 平台,它提供了全面的基础设施支持,以便于开发 Java 应用程序。Spring Boot 是基于 Spring 开发的一个项目,它旨在简化新 Spring 应用的初始搭建以及开发过程。
Spring 框架
Spring 框架是由 Rod Johnson 在 2003 年首次发布的,主要解决了企业级应用开发的复杂性问题。Spring 的核心特性可以用于任何 Java 应用,但对于开发企业级应用尤其有用。它提供了一个全面的编程和配置模型。
主要特性包括:
- IoC 容器:控制反转(Inversion of Control, IoC)是 Spring 的核心,通过依赖注入(Dependency Injection, DI)可以管理对象的创建和生命周期。
- 面向切面编程:Spring 支持面向切面编程(Aspect-Oriented Programming, AOP),允许声明式地管理事务和日志等跨领域问题。
- 数据访问:Spring 提供了对 JDBC 的抽象,简化了数据库操作,并且支持集成 ORM 框架如 Hibernate、JPA、MyBatis。
- 事务管理:Spring 提供了一致的事务管理接口,简化了事务管理并统一了不同事务管理API的使用。
- 模型-视图-控制器:Spring MVC 提供了一个构建 Web 应用程序的 MVC 框架。
- 安全性:Spring Security 提供了认证和授权的全面解决方案。
Spring Boot
Spring Boot 在 Spring 的基础上构建,旨在简化 Spring 应用的初始搭建和开发过程。它通过提供默认的配置来帮助开发者快速启动和运行 Spring 应用程序。
主要特性包括:
- 自动配置:Spring Boot 能够根据项目中添加的 jar 依赖自动配置 Spring 应用。
- 独立运行:Spring Boot 应用可以打包成一个可执行的 jar 文件,这个 jar 文件包含了内嵌的 Web 服务器(如 Tomcat、Jetty 或 Undertow),无需部署到外部 Web 服务器。
- 运行状况检查:提供了一系列的端点来检查应用的健康状况和其他指标。
- 外部化配置:提供了一种灵活的方式来配置应用,可以通过 properties 文件、YAML 文件、环境变量和命令行参数来配置。
- 无代码生成和 XML 配置:不需要生成代码或进行 XML 配置。
入门示例
下面是一个简单的 Spring Boot Web 应用示例,它创建了一个简单的 RESTful Web 服务。
1. 创建 Maven 项目并添加依赖
<dependencies>
<dependency>
<