java spring web 开发统一服务入口
项目组使用的springmvc框架 前后端交互每个模块新建一个Controller,写N个RequestMapping,项目大了感觉很乱, 一些日志,权限验证,审计功能等都要通过拦截器实现,而且入参出差不规范,后面开发了一个统一的服务入口,就是系统所有请求都经过一个Controller,通过该Controller转发到对应的service类进行业务处理,项目组只需要定义Service类,实现我定义的接口,前端按照框架定义的参数格式传递即可访问到自己service类进行业务处理。
项目结构图 SSH框架
1.首选web.xml配置Controller请求路径
2. RequestController.java
json.request作为框架服务唯一入口,
前端ajax请求json参数固定格式
{"beanName":"loginService","actionName":"checkLogin","body":{}}
首先把request.getInputStream()参数封装成Map集合,方便使用
3.ServiceDispatcher.java
获取beanName转发到对应的service类
验证通过可开启session,然后关闭,在对应的service类可直接使用session操作数据库
要求项目组定义的service需实现BaseService接口
4.新建测试service
使用switch(actionName)执行不同的业务方法,嫌麻烦可以直接使用反射机制,执行actionName方法
使用postman测试请求
查看tomcat输出,已请求到LoginService的execute方法