以前经常用三个包,controller,service,impl,model写java后台
model存放各种数据模型,service存放每个模型对应的服务接口,impl存放每个服务的实现,controller存放路由与逻辑。
现在使用基类的方式,只保留model和controller
#model
首先,新建一个Baseinfo,存放一些通用的字段与对应的getter、setter,字段有id,创建时间,修改时间,是否禁用等,也可放通用的方法。如把所有字段转化为map的toMap方法。
之后的所有model都继承Baseinfo。
//父类
Map<String, Object> updateMap = new HashMap<String, Object>();
public Map<String, Object> toMap() {
updateMap.put("createdTime", this.getCreatedTime());
updateMap.put("createdName", this.getCreatedName());
return updateMap;
}
//子类
public Map<String, Object> toMap() {
updateMap = super.toMap();
updateMap.put("realname", this.getRealname());
updateMap.put("username", this.getUsername());
return updateMap;
}
#controller
控制器也建一个Basecontroller,存放操作SQL的实例,然后写增删改查分页等方法,其中比较关键的有两点
Class clazz
这个参数public class BaseController <T extends Baseinfo>{}
model需要继承Baseinfo作为参数传入,之后需要传入Modle参数的地方都用t代替。
子类控制器,先写上Class clazz = User.class;
之后把clazz作为参数传入BaseController并调用其方法。
#业务>MVC
当业务很多的时候,先根据业务分包,每个包里面一个自己的MVC,而不是三个MVC包,每个包里面很多业务的控制器服务