Skip to main content

Spring Boot 基础用法

什么是 Spring Boot?

Spring Boot 是一个基于 Spring 框架的轻量级 Web 开发框架,简化了 Spring 应用的配置,适用于快速构建微服务和 RESTful API。

info

Spring Boot 具有开箱即用的特性,简化了传统 Spring 应用的配置,并支持内嵌服务器。

安装 Spring Boot

使用 Spring Initializr 创建项目:

curl https://start.spring.io/starter.zip -o starter.zip \
-d dependencies=web,jpa,h2 \
-d type=maven-project \
-d language=java
unzip starter.zip -d my-spring-boot-app
cd my-spring-boot-app
mvn spring-boot:run

Spring Boot 项目结构

my-spring-boot-app/
│── src/main/java/com/example/demo/
│ │── DemoApplication.java # 入口类
│ │── controller/ # 控制器
│ │── model/ # 数据模型
│ │── repository/ # 数据库操作
│ │── service/ # 业务逻辑
│── src/main/resources/
│ │── application.properties # 配置文件
│── pom.xml # 依赖配置文件

创建一个 Spring Boot 控制器

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}

CRUD 操作示例

package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

@Autowired
private UserRepository userRepository;

@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}

@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}

@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User userDetails) {
User user = userRepository.findById(id).orElseThrow();
user.setName(userDetails.getName());
return userRepository.save(user);
}

@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userRepository.deleteById(id);
}
}

数据库配置与 JPA

package com.example.demo.model;

import jakarta.persistence.*;

@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;

public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
package com.example.demo.repository;

import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {}

配置文件(application.properties)

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

运行 Spring Boot 应用

mvn spring-boot:run

结论

Spring Boot 提供了一种简便的方法来开发 RESTful API,结合 JPA 可以快速实现数据库操作。

更多 Spring Boot 资源