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 操作示例
- Java
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 可以快速实现数据库操作。