Spring(SSM)基础框架结构

1.框架结构(三层结构)

1.controller层:控制层(负责与前端的交互工作),由springMVC控制管理,主要进行前端的数据接收,由于前端收到的数据是json串,必要时候需要转化为对象

注解:@RestController 交给spring容器管理并将json返回对象

@RequestMapping 抽取公共项

@CrossOrigin 解决跨域问题

@Autowired 注入 调用业务层,所以需要注入Service(面向接口开发)

具体流程:接收前端的ajax请求,并将请求按照具体业务分为对象/具体属性进行获取,然后调用业务层

2.service层:业务层(程序猿具体处理业务的地方),直接由spring管理

注解:@Service 交给spring容器管理

@Autowired 注入 调用持久层 注入mapper

具体流程:处理业务,比如将从控制层接收的用户名/密码的数据进行判断处理,或者加密处理,然后去调用持久层mapper

3.mapper:持久层(负责和数据库进行交互),由mybatis直接管理,主要和数据库进行连接,写SQL语句的地方(简单的SQL,比如单表查询),也可以通过XML配置文件的方式进行管理(负责的sql语句,多表查询),一般都是xml文件(映射)

4.补充:POJO(具体的业务对象),属性可以与前端的数据相同,不相同时候需要在xml里面写清楚

注解:@Data 先交给的mybatis的进行管理,然后交给spring容器管理

2.业务流程

一、登录功能的业务流程

1.接收前端的ajax请求,并根据URL/参数/类型/返回值写出对应的方法,前端需要返回值为SysResult(token)的对象——一个凭证,调用业务层,返回一个SysResult对象并告诉用户成功

2.面向接口开发

<1>对控制层获取到的账户密码进行加密,先获取到账户密码

<2>对获取到的账户密码进行加密算法,API——DigestUtils类的md5DigestAsHex(),业务获取到的账户密码是一个串,需要或得字节 getBytes()

<3>把加密过后的账户密码传给用户

<4>查询数据,调用持久层数据库查询,进行判断

有数据就是账户密码正确,

没有数据就是账户密码不正确

<5>UUID就是根据当前毫秒数进行散列,几乎可以保证不重复 防止黑客攻击 返回token对象

<6>最后需要在控制层进行判断取回来的token是否为空的

二、获取页面菜单

<1>接收前端的ajax请求,调用业务层,返回成功界面

<2>查询一级菜单数据 level=1/parent_id=0,调用持久层mapper,得到一级菜单结果数据

<3>持久层执行sql语句,返回到上一层

<4>查询二级菜单 利用循环遍历

通过获取一级菜单对象

然后再次调用sql查询,获取二级菜单

最后将查询到的二级菜单数据封装到Rights对象中的children对象中去

返回一级菜单此时,里面包含封装的二级菜单数据

<5>回到控制层,返回sysesult对象,成功调用

经验分享 程序员 微信小程序 职场和发展