Как исправить NullPointerException на Autowired JdbcTemplate - PullRequest
0 голосов
/ 25 января 2019

Я переписываю свой вопрос, чтобы, надеюсь, получить больше смысла и получить некоторую помощь.

У меня есть классы Controller, 2 ClassRepository и 2 Service (один из которых не аннотирован @Service, так как я получаю сообщение об ошибке при аннотировании, поэтому вместо этого я просто использую его как класс )

Класс, не аннотированный @Service. Я просто передаю объект rateRepository из аннотированной службы в аннотированную службу.

Если я выполню следующий код в моей аннотированной службе

String zone = rateRepository.getPurolatorZone(request.getShipToZip().substring(0,3));

отлично работает.

однако в моем аннотированном классе, где я создаю экземпляр класса

InternationalRateService internationalRateService = new InternationalRateService(this.rateRepository);

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

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

1 Ответ

0 голосов
/ 28 января 2019

Spring будет вводить зависимости только в управляемые bean-компоненты Spring.Если вы создаете объект с new, то это не бин, управляемый пружиной.

В вашем случае, объект InternationalRateService не управляется, как вы создали оператором new.

Итак, введите InternationalRateService в ваш контроллер, чтобы все зависимости были введены

...