Sobes.tech
Junior — Middle
107

@RestController kullanırken, her HTTP isteği için yeni bir servis örneği mi oluşturulur yoksa aynı nesne mi kullanılır?

Sorulan şirketler
СБЕРСБЕР

AI'dan gelen yanıt

sobes.tech yapay zeka

При использовании аннотации @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 — синглтоны, один экземпляр на всё приложение.