In the code below, is calling bar()
inside foo.setBar(bar())
and blah.setBar(bar())
using two difference instances of Bar
? Or is it using a bean instance
of Bar
instead? If it's a bean instance, how does Spring do it automagically? Is it achieved by proxy?
@Configuration
public class AppConfig {
@Bean
public Foo foo() {
Foo foo = new Foo();
foo.setBar(bar());
return foo;
}
@Bean
public Bar bar() {
return new Bar();
}
@Bean
public Blah blah() {
Blah blah = new Blah();
blah.setBar(bar());
return blah;
}
}