there is a space for compatibility problem, but not that big:
if we have a ref="a.b.c", and there is a bean "a.b.c", and the property is assignable from the bean "a.b.c", then use the bean itself.
to have a conflict there must be two bean of the same type, one having name matching a substring of another, and having property of the same type, and matching the rest of the name of the first bean:
Code:
<bean id="foo.bar" class="Foo"/>
<bean id="foo" class="Foo">
<property name="bar" class="Foo"/>
</bean>
...
<property name="x" ref="foo.bar"/> <!-- conflict -->
but there is a simple way to keep the compatibility:
Code:
<property name="x" ref="foo" refproperty="bar"/>