Yes, if your POJO takes a Message instead of byte[] you will have access to the routing key, exchange etc.
In fact, instead of using the adapter, you can simply implement MessageListener instead.
No, you don't set the routing key as a property, it is passed by the template to the rabbit API as an argument.
As a general note, having the downstream component coupled to the mechanism by which it received the message (routing key) is not necessarily a good idea. It's better to make it more abstract, perhaps using a custom property instead.
Gary P. Russell
Spring Integration Team
SpringSource, a division of VMware