10.3. 注入远程缓存
设置 CDI Bean 以注入远程缓存。
流程
创建缓存限定注释。
@Remote("mygreetingcache")1 @Qualifier @Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RemoteGreetingCache {2 }将
@RemoteGreetingCache限定符添加到您的缓存注入点。public class GreetingService { @Inject @RemoteGreetingCache private RemoteCache<String, String> cache; public String greet(String user) { String cachedValue = cache.get(user); if (cachedValue == null) { cachedValue = "Hello " + user; cache.put(user, cachedValue); } return cachedValue; } }
注入远程缓存的提示
您可以在不使用限定符的情况下注入远程缓存。
... @Inject @Remote("greetingCache") private RemoteCache<String, String> cache;如果您有一个多个 Data Grid 集群,可以为每个集群创建单独的远程缓存管理器制作程序。
... import javax.enterprise.context.ApplicationScoped; public class Config { @RemoteGreetingCache @Produces @ApplicationScoped1 public ConfigurationBuilder builder = new ConfigurationBuilder();2 builder.addServer().host("localhost").port(11222); return new RemoteCacheManager(builder.build()); } }