Как стать автором
Обновить

Комментарии 9

Добрый день. К сожалению после фразы «Под капотом Spring сделает так:» какого либо примера я не увидел. Хотелось бы увидеть какой-то пример как делает под капотом Spring.

Спасибо за внимательность! Вернул потерявшийся пример.

Еще самый красивый вариант:

@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)

Это некрасивый вариант... Вот тут https://habr.com/ru/articles/761330/ в комментариях всё написано.

А ещё можно поставить скоуп request и вообще не париться. Из коробки будет новый Бин на каждый реквест.

Именно так, скоуп реквест был специально сделан для веб приложений

Не очень понял, чем плох первый вариант "context.getBean(WeatherService.class)". Т.е., чем плох понятно, не понятно, чем рекомендованный лучше. Если в итоге под капотом Spring делает тоже самое... Или речь чисто о том, как это смотрится визуально? Тогда ИМХО "return null" в getWeatherServiceBean(), который оказывается совсем не null смотрится гораздо хуже, чем явный запрос из контекста.

Если на Kotlin писать, то return null не очень хорошо, возвращаемый тип придётся объявлять nullable. Наверное можно вместо этого написать выброс исключения (throw Error("Not implemented")).

Статья хорошая.

«так как он нарушает ключевой принцип фреймворка Spring — Inversion of Control» — объясните пожалуйста, почему то же самое не относится И к 4 пункту, то есть инжекту ObjectFactory?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории