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.