Что хранит context.lookup? - PullRequest
       0

Что хранит context.lookup?

0 голосов
/ 25 июня 2011

У меня есть ServiceLocator, показанный ниже

public class ServiceLocator {
    private static ServiceLocator serviceLocator = null;
    InitialContext context = null;
    HashMap serviceCache = null;

    public ServiceLocator() throws NamingException {
        context = new InitialContext();
        serviceCache = new HashMap(5);
    }

    public synchronized static ServiceLocator getInstance()
            throws NamingException {
        if (serviceLocator == null) {
            serviceLocator = new ServiceLocator();
        }
        return serviceLocator;
    }

    public Object getService(String jndiName) throws NamingException {
        if (!serviceCache.containsKey(jndiName)) {
            serviceCache.put(jndiName, context.lookup(jndiName));
        }
        return serviceCache.get(jndiName);
    }
}

Может кто-нибудь сказать мне, почему мы должны хранить имя JNDI таким образом ??

serviceCache.put(jndiName, context.lookup(jndiName));

1 Ответ

0 голосов
/ 25 июня 2011

Кто сказал, что тебе нужно это сделать? Это просто кэширование результатов поиска JNDI. При определенных обстоятельствах поиск JNDI может быть медленным, поэтому кэширование их может быть хорошей идеей.

Я бы выяснил, нужно ли тебе это делать. Поиски JNDI могут быть достаточно быстрыми самостоятельно. Если так, то возьмите serviceCache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...