Я использую Springboot 2.1.3.RELEASE с Spring Cache и Ehcache.Я думаю, что версия по умолчанию для Ehcache в родительской помпе Springboot - 2.10.6.Я использую Cache для сохранения всех моих дорогих результатов запросов к кустам прямо на диск, и ehcache.xml выглядит так:
<diskStore path="D:\ehcache"/>
<defaultCache name="default"
maxElementsInMemory="1"
eternal="true"
diskExpiryThreadIntervalSeconds="120"
overflowToDisk="true"
diskPersistent="true"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
<cache name="myCache"></cache>
Во время разработки приложения с IntelliJ я замечаю, что кэш теряется из-за потери временивремя, но иногда это нормально.Даже когда я не изменяю код, результат все равно может быть непредсказуемым.Мне потребовалось два дня эксперимента, и, наконец, я заметил, что если я нажму кнопку Exit
вместо Stop
(которую я использую всю свою карьеру в качестве разработчика Java), кэш-память не будет потеряна ни разу.Проблема в том, что, когда Intellij работает в режиме отладки, кнопка Exit
отсутствует.Я провел свое исследование и обнаружил (не могу вспомнить, где), что он специально разработан таким образом, объяснение состоит в том, что при работе в режиме выполнения пользовательское приложение оборачивается определенной оболочкой, а последняя отвечает за получение запроса на выход.и действует в соответствии с этим, но в режиме отладки такой оболочки не существует, и следующая вещь, которую можно сделать, - это оценить System.exit (0), только когда пользовательское приложение приостановлено в точке останова.
Мой вопрос заключается в том, что, поскольку меня не волнует производительность, могу ли я сделать ehcache для сброса на диск каждый раз, когда объект сохраняется на нем?так что это становится Стоп / Убить сопротивление?Хотя я новичок в Ehcache, я много искал и не могу найти ничего плохого в моей конфигурации.Пожалуйста помоги.Спасибо.