You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Hibernate CRUD REST API 404错误排查求助

解决Spring Boot Hibernate CRUD REST API 404错误问题

看起来你遇到了接口请求404的常见问题,结合你贴出的代码,我帮你梳理几个最可能的原因:

1. 检查Spring Boot主类的包扫描范围

Spring Boot默认只会扫描主启动类所在包及其子包下的组件(Controller、Service、Repository等)。假设你的主启动类在com.example.employeecrud,但你的EmployeController、EmployeServiceImplement等类在com.akki这类完全独立的包下,Spring就无法自动发现这些组件,导致Controller没有被注册到路由中,自然返回404。

解决方法:

  • 把所有业务类移到主启动类的子包下,比如主类在com.akki,Controller放在com.akki.controller,Service放在com.akki.service,DAO放在com.akki.dao。
  • 或者在主启动类上手动添加@ComponentScan指定扫描的包:
@SpringBootApplication
@ComponentScan(basePackages = {"com.akki.controller", "com.akki.service", "com.akki.dao"})
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

2. 确认请求路径是否完全匹配

你的EmployeController上标注了@RequestMapping("/api"),而get()方法上是@GetMapping("/employe"),所以完整的请求URL应该是:
http://localhost:8080/api/employe
(如果你的项目修改了端口,要替换成对应的端口号)

请检查Postman里的请求地址:

  • 是不是把employe拼成了employee(多了一个e)?
  • 是不是漏写了/api前缀?
  • 大小写是否正确?(虽然Spring默认不区分URL大小写,但最好严格匹配)

3. 检查Service和DAO的方法实现完整性

你贴出的EmployeServiceImplement只实现了get()方法,而EmployeService接口里还有get(int id)、save()、delete()三个方法没有实现。虽然这不会直接导致404,但如果编译器允许这种情况(比如未处理抽象方法),会导致Spring无法正常实例化Service类,进而Controller的依赖注入失败,可能引发其他异常。建议你补全所有接口方法的实现,哪怕暂时只是抛出UnsupportedOperationException:

@Service
public class EmployeServiceImplement implements EmployeService {
    @Autowired
    private EmployeDAO employeDAO;

    @Transactional
    @Override
    public List<Employe> get() {
        return employeDAO.get();
    }

    @Override
    @Transactional
    public Employe get(int id) {
        return employeDAO.get(id);
    }

    @Override
    @Transactional
    public void save(Employe employe) {
        employeDAO.save(employe);
    }

    @Override
    @Transactional
    public void delete(int id) {
        employeDAO.delete(id);
    }
}

同样,EmployeDAOImplement也要补全其他三个方法的实现,比如get(int id)可以这样写:

@Override
public Employe get(int id) {
    Session currentSession = entityManager.unwrap(Session.class);
    return currentSession.get(Employe.class, id);
}

4. 验证Spring Boot应用是否正常启动

启动应用后,检查控制台日志,确认没有出现BeanCreationException、NoSuchBeanDefinitionException这类错误。如果有依赖注入失败的情况,Controller可能无法正常工作,也会间接导致请求无响应或者404。

先从上面前两点排查,这是404最常见的原因,应该能解决你的问题。

内容的提问来源于stack exchange,提问作者Akkië

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:16:50