@@ -143,7 +143,7 @@ private SpringContainedBean<?> createBean(
143
143
144
144
try {
145
145
if (lifecycleOptions .useJpaCompliantCreation ()) {
146
- return new SpringContainedBean <>(
146
+ return new SpringContainedBean <>( // to be replaced with plain createBean(Class)
147
147
this .beanFactory .createBean (beanType , AutowireCapableBeanFactory .AUTOWIRE_CONSTRUCTOR , false ),
148
148
this .beanFactory ::destroyBean );
149
149
}
@@ -180,14 +180,23 @@ private SpringContainedBean<?> createBean(
180
180
181
181
try {
182
182
if (lifecycleOptions .useJpaCompliantCreation ()) {
183
- Object bean = this .beanFactory .autowire (beanType , AutowireCapableBeanFactory .AUTOWIRE_CONSTRUCTOR , false );
184
- this .beanFactory .autowireBeanProperties (bean , AutowireCapableBeanFactory .AUTOWIRE_NO , false );
185
- this .beanFactory .applyBeanPropertyValues (bean , name );
186
- bean = this .beanFactory .initializeBean (bean , name );
187
- return new SpringContainedBean <>(bean , beanInstance -> this .beanFactory .destroyBean (name , beanInstance ));
183
+ if (this .beanFactory .containsBean (name )) {
184
+ Object bean = this .beanFactory .autowire (beanType , AutowireCapableBeanFactory .AUTOWIRE_CONSTRUCTOR , false );
185
+ this .beanFactory .autowireBeanProperties (bean , AutowireCapableBeanFactory .AUTOWIRE_NO , false );
186
+ this .beanFactory .applyBeanPropertyValues (bean , name );
187
+ bean = this .beanFactory .initializeBean (bean , name );
188
+ return new SpringContainedBean <>(bean , beanInstance -> this .beanFactory .destroyBean (name , beanInstance ));
189
+ }
190
+ else {
191
+ return new SpringContainedBean <>( // to be replaced with plain createBean(Class)
192
+ this .beanFactory .createBean (beanType , AutowireCapableBeanFactory .AUTOWIRE_CONSTRUCTOR , false ),
193
+ this .beanFactory ::destroyBean );
194
+ }
188
195
}
189
196
else {
190
- return new SpringContainedBean <>(this .beanFactory .getBean (name , beanType ));
197
+ return (this .beanFactory .containsBean (name ) ?
198
+ new SpringContainedBean <>(this .beanFactory .getBean (name , beanType )) :
199
+ new SpringContainedBean <>(this .beanFactory .getBean (beanType )));
191
200
}
192
201
}
193
202
catch (BeansException ex ) {
0 commit comments