if {@code unwrapValue} is false, then the whole annotation will be the type and annotation
   * instances will be the keys. If {@code unwrapValue} is true, the value() type of key type
   * annotation will be the key type for injected map and the value instances will be the keys.
if {@code unwrapValue} is false, then the whole annotation will be the type and annotation
   * instances will be the keys. If {@code unwrapValue} is true, the value() type of key type
   * annotation will be the key type for injected map and the value instances will be the keys. | MapKey.java