@Autowired аннотация отсутствует в файле .class

1

Кажется, я столкнулся с странным поведением java-компилятора. В основном у меня был код ниже в классе java

@Autowired
SubProcessDao subProcessDao;

@Autowired
ProcessDao processDao;

public void startProcess(BatchDetail batchDetail){
processDao.process(batchDetail.getCode());//// Line1
}

Когда он был развернут на сервере нашей командой сборки, над частью кода началось сбой в строке 1, где processDao вызывает метод обработки из-за исключения Null-указателя.

Я был удивлен, увидев это, потому что он отлично работал на всех машинах, и код тоже выглядел отлично. Но в ходе дальнейшего расследования я обнаружил, что файл.class для выше, который присутствовал в военном файле, кажется, отсутствовал @Autowired аннотация для processDao... Файл.class при декомпиляции выглядел следующим образом:

@Autowired
SubProcessDao subProcessDao;
ProcessDao processDao;

см. отсутствие @Autowired annotaion на ProcessDao. В svn-репозитории, где код сборки команды сборки, никогда не было экземпляра, когда @Autowired аннотации отсутствовали в ProcessDao. Кто-нибудь сталкивался с такой проблемой? Или кто-то может объяснить такое поведение

Используемая здесь версия java - 1.6.27, а используемый инструмент построения - maven

  • 0
    развернули другую версию?
  • 0
    хорошо мы используем SVN для создания кода, так что не думайте, что это должно быть проблемой
Теги:
spring
maven-3
build
spring-annotations

1 ответ

0

Возможно, в классе ProcessDao вы забыли объявить его как Spring bean, используя, например, @Component

  • 0
    ну, это не так .. Так как процесс был создан, в файле присутствовал @ Component.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню