This simple Spring Boot app uses enterprise patterns: Controller handles requests, Service contains logic, Repository manages data. It returns a list of users.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.*;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.*;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
@RequestMapping("/users")
class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping
public List<String> getUsers() {
return userService.findAll();
}
}
@Service
class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public List<String> findAll() {
return userRepository.findAll();
}
}
@Repository
interface UserRepository {
default List<String> findAll() {
return List.of("Alice", "Bob", "Charlie");
}
}