Я создал весенний загрузочный проект. Я использую данные весны с elasti c search. Весь конвейер: контроллер -> сервис -> репозиторий готов.
Теперь у меня есть файл, который представляет объекты страны (имя и isoCode), и я хочу создать задание, чтобы вставить их все в поиск elasti c. Я прочитал весеннюю документацию и обнаружил, что для такой простой работы слишком много настроек. Поэтому я пытаюсь выполнить простую основную «работу», которая читает csv, создает объекты и вставляет их в elasti c search.
Но у меня есть небольшая проблема, чтобы понять, как инъекция будет работать в этот случай:
@Component
public class InsertCountriesJob {
private static final String file = "D:path\\to\\countries.dat";
private static final Logger LOG = LoggerFactory.getLogger(InsertCountriesJob.class);
@Autowired
public CountryService service;
public static void main(String[] args) {
LOG.info("Starting insert countries job");
try {
saveCountries();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void saveCountries() throws Exception {
try (CSVReader csvReader = new CSVReader(new FileReader(file))) {
String[] values = null;
while ((values = csvReader.readNext()) != null) {
String name = values[0];
String iso = values[1].equals("N") ? values[2] : values[1];
Country country = new Country(iso, name);
LOG.info("info: country: {}", country);
//write in db;
//service.save(country); <= can't do this because of the injection
}
}
}
}