Лучшая практика хранения данных по всему приложению с помощью Spring - PullRequest
0 голосов
/ 10 июля 2020

Мы представили Spring Boot и Spring Data JPA. В старом мире у нас есть единичный элемент для хранения данных, которому нужно все приложение (список стран и т. Д.). Данные хранятся в нашей базе данных. Как лучше всего провести рефакторинг в нашем новом мире с помощью Spring? Должен ли я создавать bean-компонент с областью действия приложения или в настоящее время лучше всего обрабатывать его с помощью кеширования (@Cacheable)?

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Оба подхода подходят. Я предпочитаю @Cacheable, так как это немного меньше кода, чтобы делать такие вещи, как условное кэширование и удаление, легко доступны.

0 голосов
/ 10 июля 2020

Я бы рекомендовал хранить данные в вашей базе данных, но кэшировать их с помощью популярной библиотеки кэширования в памяти, например кофеин или Google Guava . Эти библиотеки позволяют быстро настроить кэш в памяти, который может обновлять sh данные время от времени (каждые 15 минут; каждый час; каждый день; все, что вы хотите). Ваш программный код может попадать в кеш сколько угодно раз, это всегда будет быстро. В библиотеке есть logi c для периодического обновления кеша.

Если ваши данные особенно статичны c, например, конфигурация приложения, которую вы можете изменять раз в несколько месяцев / лет, вы также можете рассмотреть возможность ее перемещения в конфигурационный файл stati c. Spring Boot имеет широкий спектр изящных функций , встроенных для загрузки внешней конфигурации (JSON или YAML) и привязки ее к объектной модели на основе Java. Я считаю, что аннотация @ConfigurationProperties особенно полезна. Внешнюю конфигурацию можно либо упаковать в fat-jar, либо загрузить извне через Spring Config Server. Основное преимущество этого подхода заключается в том, что ваша конфигурация будет храниться в вашей системе контроля версий (GIT). Вы также можете выполнить проверку вашей конфигурации во время загрузки, которая может выявить ошибки, которые в противном случае были бы обнаружены, когда ваша служба работает. Наконец, ваша конфигурация больше не зависит от базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...