Я подключил к проекту кэширование через Spring Cache
.
Сначала я добавил аннотацию:
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableAsync
@EnableScheduling
@EnableTransactionManagement
@EnableJpaRepositories(repositoryFactoryBeanClass = MultiSelectJpaRepositoryFactoryBean.class)
@EnableCaching //Spring Cache
public class Application {
Потом создал бин:
@Bean("authCacheManager")
public CacheManager cacheManager() {
return new ConcurrentMapCacheManager() {
@Override
protected Cache createConcurrentMapCache(String name) {
return new ConcurrentMapCache(
name,
CacheBuilder.newBuilder().expireAfterWrite(1, TimeUnit.DAYS).build().asMap(),
false
);
}
};
}
Я задал в бине время жизни кэша (1 день). Далее, я повесил аннотацию над нужным методом:
@Cacheable(value = "ldap", key = "#username")
public Authentication authenticateByLdap(String username, String password, User userDetails) {
Как я понял, при попытке повторно аутентифицироваться с совпадающим параметром username
метод должен был вернуть закешированные данные. Но данные приложение по-прежнему входит в метод (это видно по логам).
Подскажите, что не так?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Все добрый вечер, можно ли использовать BaseViewsReduced для фильтрации и BaseViews
Есть приложение, в котором при помощи рефлексии получаются поля классов, но есть небольшая проблема, на разных устройствах срабатывает он по разном,...
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
Как можно вызвать нужный конструктор у класса Sender, когда мы не знаем какой именно передаем Device через цикл?