Я работаю над приложением Spring-MVC, в котором я занимаюсь автопостановкой поля, но он получает значение NULL. Я проверил решения в сети по той же самой проблеме, как они описывают, я не должен создавать новый экземпляр классов при работе, а получать его с весны. Я тоже это пробовал, но он всегда жалуется, что ресурс не найден.Spring: Autowired bean is null
Вот класс: код
@Service
@Transactional
public class GoogleAuthorization{
@Autowired
private DriveQuickstart driveQuickstart; // This guy is null
public void saveCredentials(final String authCode) throws IOException {
GoogleTokenResponse response = flow.newTokenRequest(authCode).setRedirectUri(CALLBACK_URI).execute();
Credential credential = flow.createAndStoreCredential(response, null);
System.out.println(" Credential access token is "+credential.getAccessToken());
System.out.println("Credential refresh token is "+credential.getRefreshToken());
// It fails at below point.
this.driveQuickstart.storeCredentials(credential);
}
Контроллер:
@RequestMapping(value = "/getgooglelogin")
public String getGoogleLogin(HttpServletRequest request, HttpServletResponse response, HttpSession session,Model model) {
/* ApplicationContext applicationContext = new ClassPathXmlApplicationContext("../WEB-INF/spring/root-context.xml");
GoogleAuthorization helper = (GoogleAuthorization) applicationContext.getBean("helper");*/
GoogleAuthorization helper = new GoogleAuthorization();
}
Я попытался получить его через корневой context.xml, как вы можете видеть выше, но независимо от того, какой путь я бы он не мог его найти.
DriveQuickStartImpl:
@Service
@Transactional
public class DriveQuickstartImpl implements DriveQuickstart{
// All these below guys work just fine.
@Autowired
private PersonService personService;
@Autowired
private GoogleDriveService googleDriveService;
@Autowired
private GroupAttachmentsService groupAttachmentsService;
@Autowired
private GroupAccountService groupAccountService;
}
Что я делаю неправильно. Любая помощь будет приятной. Большое спасибо.
Update
Изображение для которой принадлежит корневой context.xml:
Вы используете сканирование компонентов? В противном случае вам нужно явно указать весне, что нужно вводить и где. Взгляните на мое объяснение о '@ Autowired' в другом вопросе: http://stackoverflow.com/a/19419296/2083523 – Avi