У меня есть небольшой вопрос о создании bean-компонентов, который меня очень беспокоит.
Например, у меня есть классы
public class A {
B b;
public A(B b) {
this.b = b;
}
}
public class B {}
И я хочу сделать bean-компоненты для них вот так:
@Configuration
public class Config {
@Bean
public B beanB() {
return new B();
}
//version 1
@Bean
public A beanA() {
return new A(beanB())
}
//version 2
@Bean
public A beanA(B beanB) {
return new A(beanB)
}
}
Итак, у меня вопрос: как правильно создать bean A?
Я думаю, что правильным является версия 2, потому что в версии 1 я думаю, что beanB может быть вызван 2 раз: о создании beanA и о том, когда весна создаст его для своего контекста. Но я не могу найти ничего, что подтвердило бы мое мнение.