Used to set properties while publishing or bind to properties while consuming.
For example while producing messages, the annotation can be set at the method
or class level to provide static data. It can be applied at the parameter level
to set the property differently per execution.
While consuming the annotation can be applied to a parameter to bind the
property to the argument. In addition, it may also be used to supply any arguments
to the broker.