项目项目分层结构分三层:请求入口 > 服务处理 > 底层数据服务
简介:目前项目使用springboot,springcloud 微服务架构。前后端分离,前端使用vue。个人理解为,目前服务编程,项目间更解耦,使用更灵活。但项目组长必须要求使用第二种方案。以下代码逐一实例下:
第一种方案(我开始用的)
入口代码(第一层):
@RestController
@RequestMapping("/main/warehouse/manage")
public class WmsWarehouseController {
private Logger log = LoggerFactory.getLogger(WmsWarehouseController.class);
@Autowired
private WmsWarehouseService wmsWarehouseService;
/**
* 保存
* @return
*/
@RequestMapping("insert")
public ResponseData insert(@RequestBody Map<String, String> map) {
return wmsWarehouseService.saveWarehouse(map);
}
}
请求逻辑服务service:
@FeignClient(name = "kf-imes-wms")
public interface WmsWarehouseService{
/**
* 保存
* @param map
* @return
*/
@RequestMapping(value = "/warehouse/warehouseManage/saveWarehouse")
public ResponseData saveWarehouse(@RequestBody Map<String, String> map);
}
逻辑代码服务(第二层):
@RestController @RequestMapping("/warehouse/warehouseManage") public class WmsWarehouseController { private Logger log = LoggerFactory.getLogger(WmsWarehouseController.class); @Autowired private WmsWarehouseService wmsWarehouseService; @RequestMapping("/saveWarehouse") public ResponseData saveWarehouse(@RequestBody Map<String,String> map){ try{ WmsWarehouse wmsWarehouse = null; if(StringUtils.isEmpty(map.get("warehouseName")) || StringUtils.isEmpty(map.get("warehouseCode")) || StringUtils.isEmpty(map.get("warehouseLocation")) || StringUtils.isEmpty(map.get("warehouseType")) || StringUtils.isEmpty(map.get("creater")) || StringUtils.isEmpty(map.get("createTime")) ){ return ResponseData.error("缺失必填项"); } wmsWarehouse = new WmsWarehouse(); wmsWarehouse.setId(IDUtils.newId()); int saveNum = wmsWarehouseService.insert(wmsWarehouse); if(saveNum>0){ return ResponseData.success("保存成功"); }else { return ResponseData.error("保存失败"); } }catch (Exception e){ log.info("数据异常:"+e.toString()); return ResponseData.error("数据异常"); } }底层请求数据库同第二层类似,只是直接操作数据库增删改查。无业务处理