You get 2 instances because that is what you have defined, 2 beans of the same type. I strongly suggest the reference guide which explains the singleton definition in spring...
Singleton in spring means the bean is created and used amongst all beans that reference that same bean. There is 1 instance of a bean not 1 instance of class (so to speak)...
Code:
<bean id="foo1" class=".."/>
<bean id="bar1" class="..>
<property name="foo" ref="foo1" />
</bean>
<bean id="bar2" class="..>
<property name="foo" ref="foo1" />
</bean>
Bar1 and bar2 reference the same instance (singleton) of the bean... Now if the scope of been 'foo1' would be, for instance, prototype you would get a new instance of the bean for both 'bar1' and 'bar2'.