Spring Annotation не работает @Autowired [дубликат]

Ну, простыми словами:

Вы пытаетесь получить доступ к объекту, который не создан или в настоящее время не находится в памяти.

Итак, как это решить:

  1. Отладить и отпустить отладчик ... Он сразу приведет вас к переменной, которая сломана ... Теперь ваша задача - просто исправить это. Используя новое ключевое слово в соответствующем месте.
  2. Если это вызвано некоторыми командами базы данных, потому что объект отсутствует, все, что вам нужно сделать, это выполнить нулевую проверку и обработать его:
    if (i == null) {
        // Handle this
    }
    
  3. Самый сложный. если GC уже собрал объект ... Это обычно происходит, если вы пытаетесь найти объект, используя строки ... То есть, найдя его по имени объекта, может случиться, что GC, возможно, уже очистил его ... Это трудно найти и станет проблемой. Лучшим способом решения этой проблемы является выполнение нулевых проверок везде, где это необходимо в процессе разработки. Это сэкономит вам много времени.

Поиск по имени означает, что некоторые фреймворки позволяют использовать FIndObjects с помощью строк, а код может выглядеть так: FindObject («ObjectName»);

1
задан Clumsy 24 August 2011 в 23:07
поделиться

2 ответа

Попробуйте добавить

<context:annotation-config/>  

в ваш конфигурационный файл Spring.

2
ответ дан dbf 28 August 2018 в 14:24
поделиться

Вы создаете только BeanFactory, который имеет чрезвычайно ограниченную функциональность. Это действительно не что иное, как создание экземпляров фасоли и позволяет вам вручную подключать их вместе. Функциональность, которую вы ищете, существует только в ApplicationContexts, которая на самом деле является весенним хлебом и маслом. Измените

BeanFactory factory = new XmlBeanFactory(
        new ClassPathResource("application-context.xml"));

на

BeanFactory factory = new ClassPathXmlApplicationContext(
        "application-context.xml");

Затем прочитайте «The BeanFactory» , чтобы ознакомиться с различием.

2
ответ дан Ryan Stewart 28 August 2018 в 14:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: