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;
@RestController
public 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 框架和起步依赖都能为我们提供强大的支持。