@RomanMaras

Как хранить статическую информацию в spring-приложении?

Пишу бот-опросник в телеграм на Java, используя Spring
Так как вопросов в опроснике много, требуется много текстовой статики (формулировки вопросов, варианты ответов и т.п.). Сначала хотел хранить её в отдельном классе с константами в виде списка простых объектов ( каждый объект = формулировка и варианты ответов), и использовать его при конструировании сценария опроса в spring-конфиге (грубо говоря, бин сценария создается в java-конфигурации, и уже в момент создания бина в этот бин надо положить всю статику, чтобы далее программа работала со сценарием и в соответствии с ним возвращала пользователю нужный текст). Однако внутри spring-конфига доступа к статике из класса констант нет. Делать его бином тоже как-то не хочется
Проблема в том, что хранить тексты вопросов и варианты ответов в статическом листе было очень удобно: всегда можно вставить ещё один вопрос с вариантами ответов в нужную часть опросника, не изменяя при этом другие вопросы.
Можно, конечно, хранить тексты вопросов и тексты ответов в текстовом файле, используя разделители и всё в таком духе, и при запуске приложения на этапе создания бина сценария читать файл и вытаскивать всю информацию оттуда, но такой вариант мне не очень нравится
Есть ли какой-то best-practice в этом вопросе?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mayton2019
Bigdata Engineer
Делать его бином тоже как-то не хочется

Не совсем понятно почему не хочется. Экономишь память? Или время иниализации бина?

У тебя проблема вовсе не в Spring. Здесь если убрать Spring за скобки - то ты также будешь ломать
голову над тем как разложить твои данные по методам.

Попробуй реши эту задачу вообще без Spring. Будет простое ООП-решение. Вот затащи его потом
в Spring и вопрос сам собой решится.
Ответ написан
Комментировать
@Wan-Derer
Ну, для хранения данных есть два "контейнера": файл или база данных.
Для файла можно выбрать формат JSON: и человекочитаемо, и легко парсить, и нет проблем с русским языком (в отл от .properties).
Ну а база - любая база. Если концепция вопросов-ответов укладывается в "ключ-значение", то можно брать что-то NO-SQL (Redis и пр.).
Но мне кажется что JSON - самое простое, и главное - не нужен программист для правки данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы