Previously (in 2.1.10.RELEASE and below) it was possible to use placeholders in place of bean class:
< bean id="serviceImpl" class="${service.class}" />
This feature has been broken, probably with adding of ConfigurationPropertiesBeanDefinitionValidator which forces class loader to load unresolved class name (by this call) what causes ClassNotFoundException: ${service.class}
.
Here you can find sample application that reproduces the problem: https://github.com/emaysyuk/spring-boot-bean-class-placeholder