博主因为打算要考研,所以为了给自己留一手后路。学习了SSM框架。这学期就做了一个完整的SSM项目。(如果考研失败就去外包做一波CRUD boy)
所以边考研边利用业余时间做了一学期,接着期末一周的Web课设时间终于把这个项目1.0搞定了。
下面就来谈一下开发完我开发完这个项目的心得:
自己以前做项目就是方法,类什么的都放得比较乱,经过这次完整项目开发。了解了不仅前后端要分离,后端也要分类别类的存放,这样有利于后期的修改以及
让人看起来神清气爽,至少这样做确实如果后期要修改之前的代码会方便很多。
在后端:
主要目录就是这几个
首先谈谈Controller层:Controller是前后端对接的地方。接收前端请求,接收前端数据,
转换格式后
调用Service进行处理后,以Map<String,Object>格式返回
dto层:我理解的是存放Service的返回类型,来存储Service从Mapper层中查询的内容
这里可能会有点模糊的是,为什么不直接返回pojo的实体类
原因是:拿添加来举例,如果添加则必定会有添加成功或者失败的情况。如果失败,那么会有一个失败原因
所以必须把失败原因返回给Controller来处理,所以就创建一个dto类来放有关Service的返回类
例如:
package com.how2java.dto; import com.how2java.enums.OrderStateEnum; import com.how2java.pojo.Order; import java.util.List; public class OrderExecution { //结果状态 private int state=0; //状态标识 private String stateInfo; //订单数量 private int count; //操作的Order-增查 private List<Order> orderList; //添加时的Order private Order order; public Order getOrder() { return order; } public void setOrder(Order order) { this.order = order; } public int getState() { return state; } public void setState(int state) { this.state = state; } public String getStateInfo() { return stateInfo; } public void setStateInfo(String stateInfo) { this.stateInfo = stateInfo; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public List<Order> getOrderList() { return orderList; } public void setOrderList(List<Order> orderList) { this.orderList = orderList; } public OrderExecution() { } //店铺操作失败时候使用的构造器 public OrderExecution(OrderStateEnum stateEnum) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); } //店铺操作成功时候使用成功的构造器 public OrderExecution(OrderStateEnum stateEnum, Order order) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); this.order = order; } //店铺操作成功时候使用成功的构造器 public OrderExecution(OrderStateEnum stateEnum, List<Order> orderList) { this.state = stateEnum.getState(); this.stateInfo = stateEnum.getStateInfo(); this.orderList = orderList; } }