18import java.util.*;
19
20@Component
21public class CountryDataLoader {
22
23 private static final Logger log = LoggerFactory.getLogger(CountryDataLoader.class);
24
25 @Value("${countries.data.url:}")
26 private String dataUrl;
27
28 private final Map<String, List<String>> adjacencyMap = new HashMap<>();
29
30 @PostConstruct
31 public void load() throws IOException {
32 ObjectMapper mapper = new ObjectMapper();
33 List<CountryEntry> countries;
34
35 if (dataUrl != null && !dataUrl.isBlank()) {
36 log.info("Loading country data from URL: {}", dataUrl);
37 countries = loadFromUrl(mapper);
38 } else {
39 log.info("Loading country data from classpath: countries.json");
40 countries = loadFromClasspath(mapper);
41 }
42 }