Всем, доброго времени суток.
Такой вот вопрос. Нужно реализовать парсер файлов, который будет выводить информацию в виде JSON. Программе через командную строку вводим путь до файла json/csv/xlsx формата и она нам в командную строку выводит сформированные json строки.
Без Spring, программа работает на "ура". Но вот введение Spring, которым я никогда не работал, в мою многопоточную программу вызывает кучу вопросов и сразу ломаются и потоки и логика программы. По сему, прошу помощи.
В кратце опишу классы. Есть класс Producer, который читает файл и закидывает строку в виде LinkedList в BlockingQueue
public class Producer implements Runnable {
int i = 0;
private Handler handler;
Producer() {
}
public Producer(Handler handler) {
this.handler = handler;
}
// какая-то логика чтения файла
}
Класс Consumer, вычитывает очередь из BlockingQueue.
public class Consumer implements Runnable {
private Handler handler;
Consumer() {
}
public Consumer(Handler handler) {
this.handler = handler;
}
//некая логика класса Consumer
}
Класс Handler является связующим классом, между Producer/Consumer. Он определяет расширение файла, местоположение файла, в нем хранятся флаги и т.д.
public class Handler {
private Writer writer;
@Resource(name = "jsonReader")
private Reader jsonReader;
@Resource(name = "csvReader")
private Reader csvReader;
@Resource(name = "xlsxReader")
private Reader xlsxReader;
private boolean isFileEnd = false;
private String filename = "";
private Path filePath;
private String fileExtension = "none";
private File file;
private BlockingQueue<LinkedList> queue;
public Handler() {
}
Handler(Writer writer,Reader reader, int count) {
this.reader = reader;
this.writer = writer;
queue = new LinkedBlockingQueue(count);
}
//некая логика класса
}
Есть еще отдельные классы для каждого расширения.
Основной вопрос состоит в том, как сделать Handler бином и в зависимости от расширения файла создавать Reader внутри Handler либо jsonReader, либо другой какой-либо.
Если читать файл в формате json и насильно указать в Handler, чтобы он использовал Reader в качестве jsonReader, то все работает.
Почитал про возможность использования MAP для конструктора класса, но как его применить, так и не понял. Сейчас все инструкции записаны в xml, но рад буду и формату в аннотациях, мне не принципиально.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени сутокЯ хочу создать проект на Kotlin, но не имею доступа к центральным репозиториям напрямую, могу только скачивать нужные библиотеки...
Есть Java 8 , Java 9 и к ним JDK 8 и JDK 9Нужно ли удалить одну из версий, чтобы не возникало никаких сбоев?
Я попытался добавить Toolbar в свое android-приложение и при объявлении и инициализации возникли кое-какие проблемыА именно:
Скажите пожалуйста, как надо переписать, чтобы методы switchPlayersSkipIsEnabled() и switchPlayersActions() не показывались в контекстной подсказке при написании...