キャッシュの実装が正しいかどうか疑問に思っており、フィードバックをいただければ幸いです。リソースには、いくつかの文字列 (クライアント アドレス) 値が割り当てられています。
addEntityRegistration() メソッドを同期する必要がありますか? または、このユースケースに対するより良いアプローチはありますか?
前もって感謝します、m
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class Cache{
private Map<Object, Set<String>> registeredClients = new ConcurrentHashMap<Object,Set<String>>();
.....
protected void addEntityRegistration(Object key, String fullJid){
Set<String> registered = registeredClients.get(key);
if(registered == null){
registered = Collections.newSetFromMap(new ConcurrentHashMap<String,Boolean>());
registeredClients.put(key, registered);
}
registered.add(fullJid);
}