Одноэлементный класс Spring, создающий несколько экземпляров - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь сделать класс одноэлементным, и чтобы сделать его ниже, внесены изменения

 Beans.xml has this:

 <bean id="LdapUti" class="com.amazon.bpmsawsproxy.util.LdapUtil" scope="singleton" />

 LdapUtil class:

public class LdapUtil {
     private static Log logger = LogFactory.getLog(LdapUtil.class);

     public DirContext GetLdapDirContext() throws NamingException {

        Hashtable<String, Object> env = new Hashtable<String, Object>(11);
         env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

         env.put(Context.PROVIDER_URL, "*********");

         env.put(Context.SECURITY_CREDENTIALS, "******");
         env.put(Context.SECURITY_PROTOCOL, "ssl");
         env.put(Context.SECURITY_AUTHENTICATION, "simple");

         DirContext ctx = new InitialLdapContext(env, null);
         return ctx;}}

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

1 Ответ

0 голосов
/ 27 мая 2020

Пожалуйста, обратите внимание, что класс не является одноэлементным, только область действия класса установлена ​​на singleton в конфигурации sping xml.

Вы создали новые экземпляры, которые не управляются Spring, поэтому вы получаете разные хэш-коды .

...