Paul is correct, the annotations and XML files provide the same core functionality.
IMHO, annotations are easier to work with and easier to manage. I hate how XML files, in most IDEs, don't integrate with design time checking, so errors don't show up until runtime, which is always a pain to debug. With annotations, you get the benefit of the compiler checking your syntax as soon as you save your code, which I think significantly increased production. That's one thing I always hated about Spring - all this XML that isn't checked at design time.
Of course, this does mean lots of annotations sprinkled across many different classes. In big projects, there is something to be said about having one, single, configuration file where all of your mappings reside.
So, I guess I have two opinions on the subject, both of which I feel strongly about.
-Cameron McKenzie