У меня есть базовая настройка API с Spring MVC Rest следующим образом.Spring MVC Rest API не работает при реализации InitializingBean
public abstract class AbstractApi implements InitializingBean {
@Autowired
protected ValidatorFactory validatorFactory;
/* ... */
@Override
public void afterPropertiesSet() throws Exception {
Assert.notNull(validatorFactory);
}
}
@Controller
@RequestMapping("books")
public class BookApi extends AbstractApi {
private final BookRepository bookRepository;
@Autowired
public BookApi(BookRepository bookRepository) {
this.bookRepository = bookRepository;
}
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Book> getBooks() {
return new ResponseEntity<>(bookRepository.findAll(), HttpStatus.OK);
}
}
Сервер возвращает 404 - Not Found
, если я посылаю GET /books
запрос с указанной выше конфигурации.
Но, если я делаю AbstractApi
un-implement InitializingBean
, он отлично работает. Кроме того, аннотируется @PostConstruct
до afterPropertiesSet()
вместо выполнения InitializingBean
работ.
Почему весна @Controller
API не работает при реализации InitializingBean
?
Пожалуйста отправьте соответствующий StackTrace. – Bnrdo
@Bnrdo Нет stacktrace. Похоже, что отображение для запроса не настроено. – TheKojuEffect