The current Spring architecture does not allow for easy replacement of org.springframework.beans.factory.support.BeanDefinitionValueResolver, which is a package-local class accessing protected methods of a bean factory. Thus the need to place it in the same Spring's package, as subclassing by a class from non-spring package does not work either.