Spring 是一个开源的 Java 企业级应用开发框架,由 Rod Johnson 在 2003 年创建。它的出现旨在简化企业级应用开发,解决了传统 Java EE 开发中复杂度高、耦合度大等问题。Spring 框架提供了丰富的功能模块,涵盖了从基础的依赖注入(Dependency Injection,简称 DI)、面向切面编程(Aspect-Oriented Programming,简称 AOP)到 Web 开发、数据访问等各个方面。
在使用 Spring 框架进行开发时,我们需要引入大量的依赖库。为了简化依赖管理,Spring Boot 提供了起步依赖(Starter Dependencies)的概念。起步依赖是一组预定义的依赖集合,它们将相关的依赖打包在一起,我们只需要引入一个起步依赖,就可以自动引入该功能所需的所有依赖。
我们可以使用 Spring Initializr(https://start.spring.io/)来快速创建一个 Spring Boot 项目。选择以下配置:
点击“Generate”按钮下载项目压缩包,解压后导入到 IDE 中。
项目的主要结构如下:
spring-demo├── src│ ├── main│ │ ├── java│ │ │ └── com│ │ │ └── example│ │ │ └── springdemo│ │ │ ├── SpringDemoApplication.java│ │ │ └── controller│ │ │ └── HelloController.java│ │ └── resources│ │ ├── application.properties│ │ └── static│ │ └── templates├── pom.xml
pom.xml 文件pom.xml 是 Maven 项目的配置文件,我们可以看到引入的起步依赖:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>spring-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
在上面的 pom.xml 文件中,我们引入了 spring-boot-starter-web 起步依赖,它包含了 Spring MVC、Tomcat 等 Web 开发所需的依赖库。
在 com.example.springdemo.controller 包下创建 HelloController.java 文件:
package com.example.springdemo.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloController {@GetMapping("/hello")public String hello() {return "Hello, Spring Boot!";}}
运行 SpringDemoApplication.java 类的 main 方法,启动 Spring Boot 应用。打开浏览器,访问 http://localhost:8080/hello,可以看到页面显示 “Hello, Spring Boot!”。
| 起步依赖名称 | 功能描述 |
|---|---|
spring-boot-starter-web |
用于开发 Web 应用,包含 Spring MVC 和嵌入式 Servlet 容器(如 Tomcat) |
spring-boot-starter-data-jpa |
用于使用 JPA(Java Persistence API)进行数据访问,包含 Hibernate 等持久化框架 |
spring-boot-starter-security |
用于实现 Spring Security 安全功能,提供身份验证和授权机制 |
spring-boot-starter-thymeleaf |
用于使用 Thymeleaf 模板引擎进行视图渲染 |
spring-boot-starter-cache |
用于集成缓存功能,支持多种缓存实现(如 Redis、Ehcache 等) |
通过使用 Spring Boot 的起步依赖,我们可以轻松地管理项目的依赖,提高开发效率,让我们更专注于业务逻辑的实现。无论是小型项目还是大型企业级应用,Spring 框架和起步依赖都能为我们提供强大的支持。