我是Jhipster的新手并且昨天开始关注它。有一件事我不知道它现在是如何工作的,所以我希望我能在这里得到答案。
Jhipster创建一个UserService
,它是用于管理用户的服务类。它依赖于在构造函数中自动装配的CacheManager
。我的IDE抱怨CacheManager
缺少Bean,但我认为是CacheConfuguration
类中处理该依赖的Bean
@Configuration
@EnableCaching
@AutoConfigureAfter(value = { MetricsConfiguration.class })
@AutoConfigureBefore(value = { WebConfigurer.class, DatabaseConfiguration.class })
public class CacheConfiguration {
private final javax.cache.configuration.Configuration<Object, Object> jcacheConfiguration;
public CacheConfiguration(JHipsterProperties jHipsterProperties) {
JHipsterProperties.Cache.Ehcache ehcache =
jHipsterProperties.getCache().getEhcache();
jcacheConfiguration = Eh107Configuration.fromEhcacheCacheConfiguration(
CacheConfigurationBuilder.newCacheConfigurationBuilder(Object.class, Object.class,
ResourcePoolsBuilder.heap(ehcache.getMaxEntries()))
.withExpiry(Expirations.timeToLiveExpiration(Duration.of(ehcache.getTimeToLiveSeconds(), TimeUnit.SECONDS)))
.build());
}
@Bean
public JCacheManagerCustomizer cacheManagerCustomizer() {
return cm -> {
cm.createCache("users", jcacheConfiguration);
cm.createCache(com.mycompany.myapp.domain.User.class.getName(), jcacheConfiguration);
cm.createCache(com.mycompany.myapp.domain.Authority.class.getName(), jcacheConfiguration);
cm.createCache(com.mycompany.myapp.domain.User.class.getName() + ".authorities", jcacheConfiguration);
// jhipster-needle-ehcache-add-entry
};
}
}
有人可以解释CacheManager
中的UserService
是如何自动装配的。