项目模块化

完成Maven版本的ssm

步骤

(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

。。maven项目的分模块开发

以前 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)]

restful风格

前端代码 —> 后端代码进行交互 , 交互的时候,前台代码(axios)发送请求到后端代码

axios --> get/post/put/delete/patch

 --->get
-->post ajax --> get/post 除了get/post以外 还支持其他请求 put/delete/patch --->http协议扩展出来 没有restfull以前: /addUser?name='xiaoping'&age=38 -- get /delete?id=1 restful风格: 传输请求风格写法 -- http get/post/patch/put/delete 完成增删改查 put动作 + /user(资源路径) {"name":"xiaozhaozhao","age":28} --新增 post动作 + /user(资源路径) {"name":"xiaozhaozhao","age":28} --修改 delete 动作 +/user/1 -->表示删除id为1的用户 get 动作 + /user/10 -->查询id为10的用户 patch 动作 + /user -->批量查询 为什么要使用restfull restfull 安全性好一点 现在比较流行风格 不会暴露动作

restfull代码实现

新增:
  @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();
    }

swagger

和spring整合,根据controller 生成的接口的文档 ,通过页面访问

给前端看的…

postman来测试

测试 put/get/post/delete/patch这些请求

前端vue-element-admin

基于 vue-cli 和 elementui 搭建出来一个模块框架, 框架基本功能 ,路由,插件 ,国际化等\

搭建模板

​ (1)解压文件 --修改名称

(2)使用idea 打开

​ (3)执行命令 npm install 安装依赖

(4)启动 npm run dev

​ (5) 访问

你可能感兴趣的:(随笔)