典型結構
// Service 接口
public interface UserService {
void uploadFile(MultipartFile file, String param);
}
// Service 實現
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper; // MyBatis Mapper
@Override
@Transactional
public void uploadFile(MultipartFile file, String param) {
// 1. 校驗文件
// 2. 解析內容 (CSV/Excel)
// 3. 批量入庫 userMapper.batchInsert(...)
// 4. 返回結果
}
}
// Controller
@Controller
@RequestMapping("/upload")
public class UploadController {
@Autowired
private UserService userService;
@PostMapping
public ResultData upload(@RequestParam("file") MultipartFile file, HttpServletRequest req) {
String param = req.getParameter("param");
userService.uploadFile(file, param);
return ResultData.success();
}
}
關鍵點
- Controller 僅負責接收請求、參數綁定、調用 Service、返回響應。
- Service 處理業務邏輯、事務控制、調用 Mapper/DAO。
- 使用
@Service、@Autowired 實現依賴注入。
- 文件上傳需配置
MultipartResolver (CommonsMultipartResolver 或 StandardServletMultipartResolver)。