在一個具有休息實現(沒有彈簧安全性的會話)的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) –