В моем загрузочном проекте Spring есть следующий класс контроллеров, разделенный на интерфейс и реализацию:
public interface UserAccountController {
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@RequestBody UserAccountEntity account,
HttpServletResponse response) throws IOException;
@RequestMapping(value = "/signup", method = RequestMethod.POST)
public String create(@Valid @RequestBody UserAccountEntity userAccount,
HttpServletResponse response, BindingResult result);
}
@RestController
@RequestMapping("/api/authentication")
public class UserAccountControllerImpl implements UserAccountController {
@Autowired
private UserAccountService userAccountService;
@Override
public String login(@Valid @RequestBody UserAccountEntity account,
HttpServletResponse response) throws IOException {
//...
}
@Override
public String create(@Valid @RequestBody UserAccountEntity userAccount,
HttpServletResponse response, BindingResult result) {
//....
}
}
Когда я перемещаю аннотации RestController и RequestMapping в интерфейс, он не работает.Но аннотирование методов на интерфейсе работает.Чем эти две аннотации отличаются?