Sobes.tech
Junior — Middle

¿Spring tiene control sobre el ciclo de vida del bean cuando se usa el modo de creación de prototipos?

sobes.tech AI

Respuesta de la IA

При использовании прототипного (prototype) режима в Spring контейнер создает новый экземпляр бина каждый раз при запросе. Однако Spring не управляет полным жизненным циклом таких бинов: он создает бин и вызывает методы инициализации, но не вызывает методы уничтожения (destroy), так как не отслеживает их после выдачи.

Это значит, что если бин в прототипном режиме требует освобождения ресурсов, то ответственность за вызов методов очистки ложится на разработчика.

Пример:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    @PostConstruct
    public void init() {
        System.out.println("Инициализация прототипного бина");
    }

    @PreDestroy
    public void cleanup() {
        System.out.println("Очистка прототипного бина");
    }
}

В этом случае метод cleanup не будет вызван автоматически Spring'ом.