Во время нагрузочного тестирования нашего приложения я заметил, что если вы используете аннотации @Transactional и @Cacheable, спящий режим всегда создает транзакцию базы данных. Есть ли простой способ предотвратить это?
Более eleberate способ решить эту проблему в Spring состоит в том, чтобы иметь следующий класс/интерфейсы
- Servicelayer-interface
- Cacheable аннотированный класс, который является просто прокси/переадресацией на
- Класс внедрения транзакционных аннотаций
Что происходит, так это после
Вызов 1:
- Создается транзакция
- Вызывается метод класса
- Результат кэшируется и возвращается
Вызов 2:
- Создается транзакция
- Кэшированный результат возвращается
предпочтительный результат должен быть:
Вызов 1:
- Создается транзакция
- Вызывается метод класса
- Результат кэшируется и возвращается
Вызов 2:
- Кэшированный результат возвращается
задан user1344117 21 May 2012 в 10:31
поделиться