前端接口,Service 接口——很多新手都搞混了这两个“接口“
一、前端眼中的"接口":HTTP API
前端(Vue / React)不能直接调 Service 或 Mapper 层。它调的"接口"就是你 Controller 里暴露出的一个 URL。
GET http://localhost:8081/user/1
这个 URL 背后执行完整链路:
前端 → Controller 方法 → Service 接口(调用实现类)→ Mapper → 数据库
结论:前端眼中的"接口" = 一个网址 + 请求方式(GET/POST)+ 返回的 JSON 数据格式。
二、Service 层的"接口":Java Interface
在 Service 层常常看到这样的写法:
// Java 接口:只定义"要做什么" public interface UserService { User getUserById(Long id); } // 实现类:负责"具体怎么做" @Service public class UserServiceImpl implements UserService { @Override public User getUserById(Long id) { return userMapper.selectById(id); } }Controller 使用时依赖的是接口类型,不是实现类:
@RestController public class UserController { @Autowired private UserService userService; // 接口类型,不是实现类! &nbs