Take a look at the attribute explanations for the attributes
here. Basic differences:
- beanName can be a run time expression
- beanName works for serialized beans
And yes, you cannot use all the attributes together. Valid useBean tags can have:
* class
* class and type
* type and beanName
* type