Как Spring предотвращает второй вызов bar() при использовании конфигураций на основе Java?Как ссылается кеширование Spring @Configuration на beans
Мне интересно компилировать обработку аннотации времени или путем проксирования метода?
@Configuration
public class AppConfig {
@Bean
public Foo foo() {
return new Foo(bar());
}
@Bean
public Foo foo2() {
return new Foo(bar());
}
@Bean
public Bar bar() {
return new Bar();
}
}
А, добрый ол 'таинственный Пружинный автомат. Почему бы просто не использовать инъекцию параметров? –
@ leo-the-manic Вы имеете в виду через '@ Autowired' аннотированные методы? Иногда у вас нет выбора. 'CustomBean' может быть сторонним классом, который не предоставляет другого метода инициализации. –
Я полагаю, что мой комментарий больше ориентирован на весну, а не на ваш ответ. Глядя на код с строго точки зрения Java, он выглядит так, как будто он создаст два разных экземпляра. Мне не нравится, что Spring выбрала автоматическое прокси/кеширование методов для вас, а не делать что-то более очевидное и понятное. –