Sobes.tech
Junior — Middle

Czy można traktować kontroler jako komponent beana w kontekście Spring lub podobnego frameworka?

sobes.tech AI

Odpowiedź od AI

Tak, kontroler w Springu (lub w podobnych frameworkach) można traktować jako komponent beana. W Springu kontrolery są zazwyczaj oznaczane adnotacjami @Controller lub @RestController, co automatycznie rejestruje je jako Bean Springa w kontekście aplikacji.

Pozwala to korzystać z zalet kontenera IoC Springa, takich jak wstrzykiwanie zależności, zarządzanie cyklem życia i konfiguracją. W ten sposób kontrolery są zarządzanymi komponentami, które obsługują żądania HTTP i współpracują z warstwą serwisową.

Przykład:

@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.findById(id);
    }
}

Tutaj UserController jest Beanem Springa zarządzanym przez kontener.