Почему мое поле Spring @Autowired имеет нулевое значение?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему мое поле Spring @Autowired имеет нулевое значение?

Сообщение Anonymous »

Примечание. Это канонический ответ на распространенную проблему.
У меня есть класс Spring @Service (MileageFeeCalculator), который имеет поле @Autowired (rateService), но поле имеет значение null, когда я пытаюсь его использовать. Журналы показывают, что создаются как bean-компонент MileageFeeCalculator, так и bean-компонент MileageRateService, но я получаю исключение NullPointerException всякий раз, когда пытаюсь вызвать метод mileageCharge в моем сервисном bean-компоненте. Почему Spring не выполняет автоматическое подключение поля?
Класс контроллера:
@Controller
public class MileageFeeController {
@RequestMapping("/mileage/{miles}")
@ResponseBody
public float mileageFee(@PathVariable int miles) {
MileageFeeCalculator calc = new MileageFeeCalculator();
return calc.mileageCharge(miles);
}
}

Класс обслуживания:
@Service
public class MileageFeeCalculator {

@Autowired
private MileageRateService rateService; //

Подробнее здесь: https://stackoverflow.com/questions/198 ... field-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»