Spring Boot入门指南(案例篇)Spring Boot是一个开源的Java基础框架,它使得创建独立的、生产级别的
Spring Boot是一个开源的Java基础框架,它使得创建独立的、生产级别的Spring应用变得更容易。它“跑起来”即可用,内嵌了Tomcat、Jetty等Servlet容器,无需部署WAR文件,也无需单独的Servlet容器。
环境准备
在开始之前,请确保你的开发环境中安装了以下软件:
- Java Development Kit (JDK) 8 或更高版本
- Maven 3.0 或更高版本
- 一个文本编辑器或IDE(如IntelliJ IDEA或Eclipse)
- Git
创建Spring Boot项目
我们可以通过Spring Initializr快速生成一个Spring Boot项目的基础结构。
- 访问 Spring Initializr
- 选择生成Maven项目,选择Java语言
- 指定项目元数据(Group, Artifact, Name, Description)
- 添加依赖(Dependencies),我们至少需要
Spring Web
依赖 - 点击“Generate”生成项目,下载并解压
项目架构图
图展示了Spring Boot应用的基本架构,包括启动类、控制器、服务、仓库和实体类,以及它们之间的关系。
项目结构
解压后的项目结构大致如下:
my-application/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── myapplication/
│ │ │ ├── MyApplication.java
│ │ │ └── controller/
│ │ │ └── HelloController.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── static/
│ │ └── index.html
├── pom.xml
└── README.md
编写Hello World应用
1. 启动类
在com.example.myapplication
包中创建一个启动类MyApplication.java
:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 标注这是一个Spring Boot应用
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args); // 启动应用
}
}
2. 控制器
在com.example.myapplication.controller
包中创建一个控制器类HelloController.java
:
package com.example.myapplication.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 标注这是一个REST控制器
public class HelloController {
@GetMapping("/hello") // 映射GET请求到/hello
public String sayHello() {
return "Hello, World!"; // 返回字符串
}
}
3. 运行应用
在项目根目录下运行以下命令来启动应用:
mvn spring-boot:run
应用启动后,访问http://localhost:8080/hello
,你将看到输出Hello, World!
。
案例:Todo应用
1. 添加依赖
在pom.xml
中添加以下依赖:
<dependencies>
<!-- Spring Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- H2 Database -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
2. 实体类
创建Todo
实体类:
package com.example.myapplication.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity // 标注这是一个JPA实体
public class Todo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String description;
private boolean completed;
// 构造函数、getter和setter省略
}
3. 仓库接口
创建TodoRepository
接口:
package com.example.myapplication.repository;
import com.example.myapplication.model.Todo;
import org.springframework.data.repository.CrudRepository;
public interface TodoRepository extends CrudRepository<Todo, Long> {
}
4. 服务类
创建TodoService
服务类:
package com.example.myapplication.service;
import com.example.myapplication.model.Todo;
import com.example.myapplication.repository.TodoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TodoService {
@Autowired
private TodoRepository todoRepository;
public List<Todo> getAllTodos() {
return todoRepository.findAll();
}
public Todo addTodo(Todo todo) {
return todoRepository.save(todo);
}
// 其他方法省略
}
5. 控制器
更新HelloController
为TodoController
:
package com.example.myapplication.controller;
import com.example.myapplication.model.Todo;
import com.example.myapplication.service.TodoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/todos")
public class TodoController {
@Autowired
private TodoService todoService;
@GetMapping
public List<Todo> getAllTodos() {
return todoService.getAllTodos();
}
@PostMapping
public Todo addTodo(@RequestBody Todo todo) {
return todoService.addTodo(todo);
}
// 其他方法省略
}
6. 运行应用
运行应用后,你可以使用Postman或curl来测试API:
- 获取所有Todo:
GET http://localhost:8080/todos
- 添加Todo:
POST http://localhost:8080/todos
,请求体为JSON格式的Todo对象。
总结
Spring Boot简化了Spring应用的创建和配置,使得开发者可以专注于业务逻辑。通过本文,你已经学会了如何创建一个简单的Spring Boot应用,并了解了一个Todo应用的实现。希望这能帮助你快速上手Spring Boot。
转载自:https://juejin.cn/post/7421522242339258380