Я переписываю свой вопрос, чтобы, надеюсь, иметь больше смысла и получить некоторую помощь.
У меня есть классы Controller, 2 ClassRepository и 2 Service (один из которых не аннотирован @Service, так как я получаю сообщение об ошибке, когда аннотирую его, поэтому вместо этого я просто использую его как класс)
Класс без аннотации @Service Я просто передаю объект rateRepository из аннотированной службы в неаннотированную службу.
Если я выполню следующий код в своей аннотированной службе
String zone = rateRepository.getPurolatorZone(request.getShipToZip().substring(0,3));
это прекрасно работает.
однако в моем неаннотированном классе, где я создаю экземпляр класса
InternationalRateService internationalRateService = new InternationalRateService(this.rateRepository);
Обновлено:
Я аннотировал свой класс InternationalRateService с помощью @Service и решил автоматически подключить сам репозиторий, и я все еще получаю исключение нулевого указателя в методе getPurolatorZone. Я не понимаю, почему он работает в одном сервисе, а не в другом, когда они настроены одинаково.
Второе обновление: как оказалось, я идиот, потому что я даже не подумал проверить, возможно ли, что строка, которую я передаю в репозиторий, была тем, что на самом деле вызывало ошибку. Оказывается, я никогда не устанавливал локальную переменную shiptozip таким образом. да я идиот.




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