У меня есть мое основное приложение, аннотированное с помощью @SpringBootApplication. Вот код для следующего:NullPointerException при попытке @Autowired WorkerThread
@SpringBootApplication
public class Application {
private Logger logger = LoggerFactory.getLogger(Application.class);
@Autowired
public ExternalConfiguration configuration;
@Autowired
WorkerThread workerThread;
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(new Object[] { Application.class });
springApplication.run(args);
}
}
А вот мой WorkerThread.java
@Component
@Scope("prototype")
public class WorkerThread implements Runnable {
@Autowired
private ApplicationContext applicationContext;
@Autowired
ExternalConfiguration externalConfiguration;
@Autowired
WorkerConfig workerConfig;
WorkerQueueDispatcher dispatcher;
public WorkerThread() {
dispatcher = applicationContext.getBean(WorkerQueueDispatcher.class, externalConfiguration.getEventQ(),
workerConfig.getWorkers());
}
@Override
public void run() {
logger.info("Worker thread started. Thread ID :" + Thread.currentThread().getId());
dispatcher.run();
}
}
Я пытался отладки и узнал, что мой ApplicationContext не получал Autowired и является недействительным.
Я не использовал новый для создания экземпляра WorkerThread.
Пожалуйста, помогите мне.
Возможная Дубликат [Что такое NullPointerException, и как это исправить?] (Http://stackoverflow.com/questions/218384/what- is-a-nullpointerexception-and-how-do-i-fix-it) – xenteros
Очевидно, что я знаю, что такое NullPointerException. Я говорю о том, что ApplicationContext не получает @Autowired и, следовательно, он равен нулю. Пожалуйста, внимательно прочитайте вопрос. – amitection
Просьба указать трассировку стека при вызове NPE во время доступа к контексту приложения. –