это сработает и распечатает CountryData : {MY=[en, zh]}
, но обязательно прочитайте ответ Дэдпула.
хак здесь, чтобы переопределитьимя конфигурации по умолчанию 'application' от 'country'
в этом примере, я сделал это, установив его через свойство System, но запуск вашего приложения через java -jar mycountryapp.jar --spring.config.name=country
должен работать идеально
@SpringBootApplication
public class Application {
static {
System.setProperty("spring.config.name", "country");
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Service
class CountryService {
private final CountryData countryData;
public CountryService(CountryData countryData) {
this.countryData = countryData;
}
@EventListener(ApplicationReadyEvent.class)
public void showCountryDataOnStartup() {
System.err.println("CountryData : " + countryData.getMap());
}
}
@Configuration
@ConfigurationProperties(prefix = "entries")
class CountryData {
Map<String, List<String>> map;
public Map<String, List<String>> getMap() {
return map;
}
public void setMap(Map<String, List<String>> map) {
this.map = map;
}
}