Почему мое поле 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

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