How to correct inject map of bean in spring context

java, spring

Solution

Quote from the documentation:

An autowired Maps values will consist of all bean instances that match the expected type, and the Maps keys will contain the corresponding bean names.

I think that just changing `@Inject` with `@Resource` will do it.

Problem

I am using component-scan in my spring application. So in spring context I created map: ``` <util:map id="mapByName" map-class="java.util.concurrent.ConcurrentHashMap"> <entry key="Name1" value-ref="MyCustomClassName1" /> </util:map> ``` and in my class annotated by @Service I want to inject this property: ``` @Inject private Map<String, MyCustomClassName1> mapByName; ``` this is still working. Problem just in name of key. When I print this property I got `[MyCustomClassName1=org.my.package.service.MyCustomClassName1@cb52f2]` so as you can see name of key is changed from Name1->MyCustomClassName1 (Name of this class). So my question is how to define custom key name in map property ?

Original source