步骤
(1) 创建maven web项目
(2)在pom.xml 导入 依赖的jar包 (ssm)
(3)在配置文件
web.xml / applicationContext.xml /applicationContext-mvc.xml
db.properties log4j.properites
(4)搭建 service 层 mapper层 controller层
(5)测试
(1)抽取BaseMapper
把公共的crud方法抽取到BaseMapper里面
(2)抽取IBaseService 和 BaseServiceImpl
把公共的crud方法抽取到BaseService里面 通过BaseServiceImpl去实现BaseService里面方法
(3)抽取BaseDomain
抽取公共id
以前 ssm 结构:
不好的地方:
(1)随着业务的增加, mapper 或者 service类 越来越多 ,项目越来越庞大,项目有点臃肿 -->拆分多个模块
(2)项目代码越来越多, 构建 或者编译, 变得很慢很慢 -->拆分
(3)有些内容,公共的内容 ,有很多项目都可能使用,有必要-- 抽取到公共maven模块
(4)有些内容, 不想让每个人都可以修改 – 抽取到公共的maven模块 util
(5)随着项目业务需求的怎么 ,pom.xml的内容也会变得很长
一般中大型项目 都在使用分模块开发
把以前的一个模块 (一个项目) 拆分成多个模块
写项目写代码 尽量满足下面内容:
(1)开闭原则
对扩展开放
对修改关闭 – 公共的不要乱修改
(2)低耦合: 尽量的分层开发 service mapper controller --为了维护
高内聚: 比如一个方法 (方法就应该完成一个方法该干的事情 save ) --最多40行
拆分:
按照层次结构来拆分
业务功能拆分 – 电商 订单(order) 支付(pay) 物流 用户中心
(1)代码拆分
basic-util 工具类
basic-core 公共内容
crm-common 具体项目公共内容
crm-mapper 项目里面具体mapper
crm-service 项目里面service类
crm-web 项目的controller层
…
pss-common
(2)配置文件拆分
web.xml applicationContext-mvc.xml -->crm-web模块
applicationContext.xml–crm-service模块
(3)效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wsDiF8pr-1575562959368)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20191205140830721.png)]
前端代码 —> 后端代码进行交互 , 交互的时候,前台代码(axios)发送请求到后端代码
axios --> get/post/put/delete/patch
--->get
新增:
@RequestMapping(value="/xxx",method = RequestMethod.PUT)
@ResponseBody
public AjaxResult add(@RequestBody Department department){
System.out.println("新增:"+department);
return new AjaxResult();
}
修改:
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public AjaxResult update(@RequestBody Department department){
System.out.println("修改:"+department);
return new AjaxResult();
}
删除
@RequestMapping(value="/{id}",method = RequestMethod.DELETE)
@ResponseBody
public AjaxResult delete(@PathVariable Long id){
System.out.println("删除数据的id为:"+id);
return new AjaxResult();
}
//查询
@RequestMapping(value="/{id}",method = RequestMethod.GET)
@ResponseBody
public AjaxResult queryOne(@PathVariable Long id){
System.out.println("查询数据的id为:"+id);
return new AjaxResult();
}
@RequestMapping(value="/list",method=RequestMethod.PATCH)
@ResponseBody
public List<Department> list(){
return departmentService.queryAll();
}
和spring整合,根据controller 生成的接口的文档 ,通过页面访问
给前端看的…
测试 put/get/post/delete/patch这些请求
基于 vue-cli 和 elementui 搭建出来一个模块框架, 框架基本功能 ,路由,插件 ,国际化等\
(1)解压文件 --修改名称
(2)使用idea 打开
(3)执行命令 npm install 安装依赖
(4)启动 npm run dev
(5) 访问