Sobes.tech
Junior — Middle

Czy możesz wyjaśnić koncepcję usługi w ramach Spring i jak jest ona używana w aplikacji?

sobes.tech AI

Odpowiedź od AI

W Springu serwis to komponent zawierający logikę biznesową aplikacji. Zazwyczaj serwisy oznacza się adnotacją @Service, co pozwala Springowi automatycznie je wykrywać i zarządzać nimi za pomocą kontenera zależności (IoC).

Serwisy służą do podziału odpowiedzialności: kontrolery obsługują żądania HTTP, a serwisy wykonują główną logikę, np. pracę z bazą danych, obliczenia lub integrację z systemami zewnętrznymi.

Przykład serwisu:

@Service
public class UserService {
    public User findUserById(Long id) {
        // logika wyszukiwania użytkownika
    }
}

W kontrolerze serwis jest wstrzykiwany przez @Autowired lub przez konstruktor:

@RestController
public class UserController {
    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.findUserById(id);
    }
}