Почему мое поле Spring @Autowired имеет значение null?
Примечание: это должно быть каноническим ответом на общую проблему.
У меня весна@Service
учебный класс (MileageFeeCalculator
) который имеет@Autowired
поле (rateService
), но полеnull
когда я пытаюсь использовать это. Журналы показывают, что обаMileageFeeCalculator
боб иMileageRateService
боб создаются, но я получаюNullPointerException
всякий раз, когда я пытаюсь позвонитьmileageCharge
метод на моем сервисном бобе. Почему нетт пружина автопроводка в поле?
Класс контроллера:
@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; //