Sobes.tech
Назад к вопросам
Middle+
6

Для чего нужны prototype бины в Spring? Приведите пример использования.

Компании, где спрашивали
луция

Ответ от нейросети

sobes.tech AI

В Spring бины с областью видимости prototype создаются заново при каждом запросе из контейнера, в отличие от синглтонов, которые создаются один раз при старте приложения.

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

Пример использования:

@Component
@Scope("prototype")
public class UserSession {
    private String sessionId;
    // геттеры и сеттеры
}

@Service
public class UserService {
    @Autowired
    private ApplicationContext context;

    public void process() {
        UserSession session = context.getBean(UserSession.class);
        // каждый вызов getBean возвращает новый экземпляр
        session.setSessionId(UUID.randomUUID().toString());
        // работа с сессией
    }
}

Таким образом, prototype-бины позволяют создавать объекты с уникальным состоянием для каждого запроса, что невозможно при синглтон-области видимости.