Я делаю REST API с Spring Boot и MongoDB в Java.
У меня есть, например, класс Location с соответствующими классами LocationRepository и LocationController. Чтобы получить доступ к базе данных Location (LocationRepository), мне нужно сделать это через LocationController (насколько я знаю). У меня есть функции в этом контроллере, которые выполняются по запросам POST / GET, и он прекрасно работает при отправке запросов с внешнего сервера (Nuxt. js w / Ax ios) или просто через Insomnia / Postman.
Однако, если я не хочу получать доступ к базе данных местоположений из бэкэнда и из другого класса в моей программе, я не уверен, как это сделать. Я полагаю, мне либо нужно отправлять запросы API локально, либо мне нужно получить фактический экземпляр моего LocationController для запуска функций на нем.
Является ли отправка запросов API локально, как эта плохая практика?
Могу ли я как-нибудь получить экземпляр моего LocationController? Все это управляется через Spring, который, я полагаю, где-то создает контроллеры, но я не знаю, где и как их захватить.
Вот пример одного из моих контроллеров:
@RestController
@RequestMapping("api/locations")
public class LocationController {
@Autowired
private LocationRepository repository;
@RequestMapping(value = "/all", method = RequestMethod.GET)
public List<Location> getAllLocations(@RequestBody String body) {
return repository.findAll();
}
}
Цените любую помощь!
РЕДАКТИРОВАТЬ: Использование @Autowired LocationController locationController в любом классе, которому необходим доступ к этому, похоже, работает.