在一个具有休息实现(没有弹簧安全性的会话)的spring引导应用程序中,我想避免多次调用用户表的数据库。缓存未用于弹簧引导
在谁扩展WebSecurityConfigurerAdapter一类,我有
@Bean
public AuthenticationProvider authenticationProviderBean() throws Excen {
DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
authenticationProvider.setPasswordEncoder(passwordEncoder);
authenticationProvider.setUserCache(userCache);
authenticationProvider.setUserDetailsService(userDetailsServiceBean());
return authenticationProvider;
}
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public EhCacheFactoryBean ehCacheFactoryBean(){
EhCacheFactoryBean ehCacheFactory = new EhCacheFactoryBean();
ehCacheFactory.setCacheManager(cacheManagerFactoryBean().getObject());
return ehCacheFactory;
}
@Bean
public CacheManager cacheManager(){
return new EhCacheCacheManager(cacheManagerFactoryBean().getObject());
}
@Bean
public EhCacheManagerFactoryBean cacheManagerFactoryBean() {
EhCacheManagerFactoryBean cacheManager = new EhCacheManagerFactoryBean();
return cacheManager;
}
@Bean
public UserCache userCache() {
EhCacheBasedUserCache userCache = new EhCacheBasedUserCache();
userCache.setCache(ehCacheFactoryBean().getObject());
return userCache;
}
}
ehcache.xml中(可能做到这一点在Java中?)
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect" dynamicConfig="true">
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="60"
timeToLiveSeconds="300"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</defaultCache>
</ehcache>
如何确保,则使用缓存?
实际上我看到在服务器上完成查询
所有的代码可以用Spring Boot消失。我们会自动检测'ehcache.xml',并为您配置它。你只需要'@ EnableCaching'来触发它。如果您有执行器,我们会为'/ metrics'上的每个缓存导出统计信息。 –
好的以及如何说当用户尝试登录时使用我的缓存? –
哦,我现在得到了问题。我想要启用Hibernate的二级缓存。您应该重读hibernate文档或更改您的问题,因为根本不会这样做。你在配置Spring的缓存抽象,[检查文档](http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/cache.html) –