Spring boot @ value loads yml map data

Using @ value to automatically inject attribute values in

spring boot simplifies a lot of operations, but not when injecting Map types.
can be implemented using @ ConfigurationProperties, but with a little more complexity. Setting the
Map value to a json string is also possible, but it reduces readability.
is there any way to inject Map into @ value?

expect the following way

@Value("${my.map}")
private Map<String, String> map;

but the error message Could not resolve placeholder "my.map" in value "${my.map}"

application-dev.yml

my:
  string: string_value
  map:
    name: name_value
    age: age_value

Application


@SpringBootApplication
public class Application extends SpringBootServletInitializer implements ApplicationRunner {

    @Autowired
    private MyMap myMap;

    @Value("${my.string}")
    private String stringValue;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(stringValue);
        System.out.println(myMap);

    }
}
Apr.22,2022

my:
  string: string_value
  map:
    name: name_value
    age: age_value

map must be an object in writing my.map in this way. If you want to get Map this way,

correct writing

  

@ value does not seem to be able to inject map.
must use @ ConfigurationProperties, which

Menu