Spring Boot คืออะไร: สร้าง REST API อย่างรวดเร็ว
#java13 เม.ย. 2569
Spring Boot คืออะไร
Spring Boot เป็น framework ที่ทำให้สร้าง Spring applications ได้ง่ายขึ้นมาก ด้วย auto-configuration และ embedded server ไม่ต้องตั้งค่าอะไรมาก
สร้างโปรเจ็ค
# ใช้ Spring Initializr
curl https://start.spring.io/starter.zip \
-d dependencies=web,data-jpa,h2 \
-d type=maven-project \
-d language=java \
-d bootVersion=3.2.0 \
-o demo.zip
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Main Application
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
REST Controller
@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping
public List<User> getAllUsers() {
return userService.findAll();
}
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable int id) {
return userService.findById(id)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@PostMapping
public ResponseEntity<User> createUser(@RequestBody @Valid CreateUserRequest request) {
User user = userService.create(request);
return ResponseEntity.status(HttpStatus.CREATED).body(user);
}
@PutMapping("/{id}")
public ResponseEntity<User> updateUser(
@PathVariable int id,
@RequestBody @Valid UpdateUserRequest request) {
return userService.update(id, request)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable int id) {
userService.delete(id);
return ResponseEntity.noContent().build();
}
}
Service Layer
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public List<User> findAll() {
return userRepository.findAll();
}
public Optional<User> findById(int id) {
return userRepository.findById(id);
}
public User create(CreateUserRequest request) {
User user = new User(request.name(), request.email());
return userRepository.save(user);
}
}
application.properties
server.port=8080
spring.datasource.url=jdbc:h2:mem:testdb
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
สรุป
Spring Boot ทำให้สร้าง REST API ได้รวดเร็วมาก ด้วย auto-configuration และ convention over configuration ไม่ต้องตั้งค่า XML อีกต่อไปครับ