Code: Select all
@Bean()
private class SpringManagedObject {
Object someSpecificSpringBean1;
Object someSpecificSpringBean2;
Object someSpecificSpringBean3;
SpringManagedObjectLevel2 springManagedObjectLevel2;
public SpringManagedObject(final Object someSpecificSpringBean1, final Object someSpecificSpringBean2, final Object someSpecificSpringBean3, final SpringManagedObjectLevel2 springManagedObjectLevel2) {
this.someSpecificSpringBean1 = someSpecificSpringBean1;
this.someSpecificSpringBean2 = someSpecificSpringBean2;
this.someSpecificSpringBean3 = someSpecificSpringBean3;
this.springManagedObjectLevel2 = springManagedObjectLevel2;
}
public void defaultInitLogic() {
}
}
@Bean()
private class SpringManagedObjectLevel2 {
Object someSpecificSpringBean1;
Object someSpecificSpringBean2;
Object someSpecificSpringBean3;
Level3Bean theBeanIWantToInject;
public SpringManagedObjectLevel2(final Object someSpecificSpringBean1, final Object someSpecificSpringBean2, final Object someSpecificSpringBean3, final Level3Bean theBeanIWantToInject) {
this.someSpecificSpringBean1 = someSpecificSpringBean1;
this.someSpecificSpringBean2 = someSpecificSpringBean2;
this.someSpecificSpringBean3 = someSpecificSpringBean3;
this.theBeanIWantToInject = theBeanIWantToInject;
}
}
@Bean()
@ConditionalOnMissingBean
public Level3Bean TheMemberIWantInDevelopment() {
return new Level3Bean();
}
Code: Select all
@Bean()
public SpringManagedObject TheObjectIWant(SpringManagedObject springManagedObject) {
springManagedObject.defaultInitLogic();
return springManagedObject;
}
@Bean()
public Level3Bean TheMemberIWantToInject() {
var result = new Level3Bean();
result.useConfiguration("1122");
return result;
}
< /code>
Aber die Situation ändert sich, wenn Sie mehrere Bohnen wie SO haben: < /p>
@Bean("vm1")
public SpringManagedObject TheObjectIWantInVm1(@Qualifier("vm1Member") SpringManagedObject springManagedObject) {
springManagedObject.defaultInitLogic();
return springManagedObject;
}
@Bean("vm2")
public SpringManagedObject TheObjectIWantInVm2(@Qualifier("vm2Member") SpringManagedObject springManagedObject) {
springManagedObject.defaultInitLogic();
return springManagedObject;
}
@Bean(name = "vm1Member")
public Level3Bean TheMemberIWantInVm1() {
var result = new Level3Bean();
result.useConfiguration("1122");
return result;
}
@Bean(name = "vm2Member")
public Level3Bean TheMemberIWantInVm2() {
var result = new Level3Bean();
result.useConfiguration("0011");
return result;
}
Code: Select all
prodMember
Code: Select all
SpringManagedObject