Sobes.tech
Junior — Middle
110

@RestController ishlatilganda, har bir HTTP so'rovi uchun yangi xizmat nusxasi yaratiladimi yoki bir xil ob'ekt ishlatiladimi?

Qaerda so'ralgan kompaniyalar
СБЕРСБЕР

AIdan javob

sobes.tech AI

При использовании аннотации @RestController в Spring Boot сервисы, как правило, являются синглтонами по умолчанию. Это значит, что для каждого HTTP-запроса не создаётся новый экземпляр контроллера или сервиса, а используется один и тот же объект.

Spring управляет жизненным циклом бинов и по умолчанию создает их как синглтоны, что повышает производительность и экономит ресурсы.

Если требуется создать новый экземпляр на каждый запрос, можно изменить область видимости бина, например, с помощью аннотации @Scope("request").

Пример:

@Service
public class MyService {
    // сервис синглтон по умолчанию
}

@RestController
public class MyController {
    private final MyService myService;

    public MyController(MyService myService) {
        this.myService = myService;
    }

    @GetMapping("/hello")
    public String hello() {
        return "Hello";
    }
}

Здесь MyService и MyController — синглтоны, один экземпляр на всё приложение.