Spring bean-компонент вызывает нулевой указатель

У меня есть класс регистратора, который использует сервис. Каждый раз, когда создается новый регистратор, я ожидаю, что у меня будет доступ к сервису регистрации синглтона.

Я автоматически подключаю службу регистрации к регистратору, однако возвращается исключение нулевого указателя. Я попробовал несколько решений:

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

Я пытаюсь заставить это работать в моих тестах junit, и я указываю файл контекста, чтобы использовать другой контекст приложения. Однако, даже если он остается идентичным, это не решает проблему.

Пожалуйста, найдите код ниже:

Ниже приводится выдержка из контекста приложения.

<context:component-scan base-package="com.platform"/>
<bean id="asyncLoggingService" class="com.platform.services.AsyncLoggingServiceImplementation" scope="prototype"/>

Ниже приведен класс Logger.

package com.platform.utils;


import com.platform.services.AsyncLoggingService;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

public class OurLogger
{

  private static Logger logger;

  @Autowired
  private AsyncLoggingervice asyncLoggingService;

  public OurLogger(Class Clazz)
  {
    logger = LoggerFactory.getLogger(Clazz);
  }


  public void trace(TraceableObject object, String message)
  { 
    //Do nothing yet
  }

}

Затем я использую Logger в другом сервисе, чтобы регистрировать происходящее. (Причина, по которой я пишу другой регистратор, состоит в том, чтобы использовать сервер RabbitMQ). В сервисе я создаю новый экземпляр Регистратора, а затем использую его соответствующим образом.

@Service
public class AsyncAccountServiceImplementation implements AsyncAccountService
{
  private static final String GATEWAY_IP_BLOCK = "1";

  private static OurLogger logger = new      OurLogger(AsyncAccountServiceImplementation.class);

...
}

Нулевой указатель встречается вOurLogger когда я пытаюсь вызвать любой метод наasyncLoggingService.

Затем я пытаюсь проверитьAsyncAccountService используя JUnit. Я уверен, что я добавляю другой контекст приложения, но он все еще, кажется, приводит к исключению нулевого указателя.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Я видел способы исправить это, но они, кажется, не работают, так что, возможно, я где-то допустил ошибку или не совсем все понимаю.

Ответы на вопрос(5)

Ваш ответ на вопрос