项目流程
- 前端页面需要有一个@click点击事件,点击该按钮触发ajax请求,将用户提交到数据传输给前端控制器
- 由前端控制器给处理器映射器进行数据处理验证,然后交给处理器适配器
- 处理器适配器会携带用户的有效信息去找到后端Controller层去进行处理
- 在UserController层需要添加@RestController注解,还需要添加@CrossOrigin注解来说明跨域问题
- UserController层会通过@RequestMapping/@PostMapping/@GetMapping注解来设置访问路径,可以通过路径并找到对应的方法
- 通过@Autowired注解进行依赖注入来使用UserService层中的抽象方法
- 通过UserService层会找到具体的实现类UserServiceImpl
- 在UserServiceImpl层中需要添加@Service注解进行说明该类是交给Spring容器保存
- 在UserServiceImpl层中会通过@Override注解来重写接口中的方法来完成自己的业务逻辑
- 同样也需要通过@Autowried注解进行依赖注入UserMapper
- 业务实现会调用UserMapper中的抽象方法
- 通过MapperScan(“包路径”)来设置可以直接找到对应的Mapper层
- 在Mapper层可以直接通过注解来完成Sql的CRUD操作
- 也可以在UserMapper.xml文件中完成Sql的CRUD操作
- 在UserMapper.xml中需要设置标签
- 在标签中设置一个namespace属性来制定具体的Mapper
- 在mapper标签中通过具体的/等具体的标签来进行Sql语句的CRUD操作
- 具体业务完成后会发送到视图渲染,进行视图渲染,然后交给视图想用给用户,展示在浏览器上
- 在此基础上添加用户的权限
- 通过Nacos服务认证中心来进行服务的注册,只有服务在Nacos中进行了认证,才可以通过验证
- 添加了Redis缓存,是用来缓解数据库的压力,会将已经查询过的数据存放在Redis缓存中,当用户再次访问/浏览的时候,会从Redis缓存中拿去,从而增加了效率
- 通过使用了RabbitMQ,是为了当访问量过大时,为了缓解数据库的压力,添加了RabbitMQ让大量的数据访问先在RabbitMQ中进行排队,然后再进行对数据库的操作,从而降低了数据库的压力,还可以通过启动多个服务器来完成数据库的操作,可以完成入库的优化。