目录
一、软件开发整体介绍 03
1.1软件开发流程 03
1.2角色分工
1.3软件环境
二、外卖项目介绍 04
2.1项目介绍
2.2产品原型展示
2.3技术选型
2.4功能架构
2.5项目上线后的角色分类
三、开发环境搭建 05
3.1数据库环境搭建
3.2maven项目搭建 06
四、后台登陆功能开发 07
4.1需求分析
4.2后台登陆功能开发 08
4.3后台登陆系统功能 09
4.4后台系统登陆功能—代码开发(梳理登陆方法处理逻辑)10
4.5后台系统登陆功能——代码开发(实现登陆处理逻辑)11
4.6后台登陆功能---功能测试 12
五、后台退出功能开发 13
5.1需求分析 13
5.2代码书写
六、分析后台系统首页构成和效果展示方式 14
6.1系统首席效果展示方式的分析
一、软件开发整体介绍 03
1.1软件开发流程 03
注:
需求分析解释
1、产品原型通常根据网页的形式来介绍一下
2、通过文档编写,来阐述项目有哪些功能。
涉及部分解释:
1、当前的项目需要有几个数据库:数据库内的表和字段是什么样的
2、 UI界面,将实际的效果展现出来。
1.2角色分工
1.3软件环境
二、外卖项目介绍 04
2.1项目介绍
2.2产品原型展示
注:该部分一般是产品经理来进行制作的。
2.3技术选型
注:
1、网关层:来自请求后,将来自用户端的请求分配给一个或多个tomcat
2、应用层:主要是Session做集群的时候session共享的功能。
3、应用层Swagger:用于优化,将项目进行拆分,变成前后端项目分离的功能。
4、数据层Redis:用于数据缓存,在优化的阶段使用。
5、工具git:代码版本的管理
2.4功能架构
2.5项目上线后的角色分类
三、开发环境搭建 05
3.1数据库环境搭建
注:两种创建数据库的方式。
1、图形化软件
2、命令行创建
3.2maven项目搭建 06
小技巧学习:在终端中进行数据的输出(使用log.info)
添加注释@Slf4j
配置静态资源映射:将做好的静态资源放置到IDEA中,并能够通过浏览器进行访问
解决方法:添加一个配置类,使用静态资源映射。
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {/**** 设置静态映射。将在实际的浏览器中能够获取得到工程文件中的指定的静态资源。* @param registry*/@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {log.info("开始进行静态资源映射...");registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");}
}
思路流程的整理:
1、创建一个SprngBoot的的项目文件。首先需要添加的注解是@SpringBootApplication
2、创建一个配置类,首先需要添加注解
四、后台登陆功能开发 07
4.1需求分析
需要服务端创建一些类。
Controller:来接收来自网页的用户名和密码
然后使用Service类来调用数据库,在然后调用Mapper来调用数据库。最终调到数据库DB中的数据来和我们输入的数据内容是否一致。
该部分是DB查询对应的员工表。因为是美团的后台管理系统。
注:这部分是上述DB要查询的表。
4.2后台登陆功能开发 08
创建数据库和IDEA之间的对应: 映射
会根据数据库存有的类,对应的在程序当中也会创建一个程序实体类。 IDEA中的数据内容和数据库中的数据类型命名是一致的。
注:实现类放到impl文件夹下
4.3后台登陆系统功能 09
上面已经将mapper、controller和service进行创建。
需要编写很多的controller,这些都是响应客户端的页面返回回来的请求。然后controller处理完请求后,反馈给页面一个结果。
本项目的案例统一的都是利用这个R类对象作为处理的结果,进行反馈的。
4.4后台系统登陆功能—代码开发(梳理登陆方法处理逻辑)10
最后所有的处理结果都会被处理成一个R对象进行值返回。为增强通用性设置一个泛型。
1、由于客户端登陆界面是传输的json的类型数据,所以需要对对象添加注解@RequestBody。
2、添加的对象名称要与自己设定employ类中对象名称一致
3、添加一个session来将将来登陆成功后employ对象中员工id存到session中,来表示成功。然后后面可以利用这个request的get获取,来获取登陆成功的员工id。
4.5后台系统登陆功能——代码开发(实现登陆处理逻辑)11
根据功能--->处理逻辑--->进行编码
为什么使用employeeService.getOne原因:
在数据库中该数据的索引位置的索引类型为Unique。并且用户名是唯一,所以是Unique。并且能够使用getOne。
代码部分实现4.4中的逻辑分析:
package com.itheima.reggie.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.itheima.reggie.common.R;
import com.itheima.reggie.entity.Employee;
import com.itheima.reggie.service.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;@Slf4j
@RestController
@RequestMapping("/employee")//和数据库连接名一致
public class EmployeeController {@Autowiredprivate EmployeeService employeeService;/*** 员工登陆* @param request* @param employee* @return*/@PostMapping("/login")private R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){//1、将页面提交的密码password进行md5加密处理String password = employee.getPassword();password = DigestUtils.md5DigestAsHex(password.getBytes());//将处理后的数据还传递给自己//2、根据页面提交的用户名uesrname查询数据库LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();//包装一个查询对象queryWrapper.eq(Employee::getUsername,employee.getUsername());//调用匹配对比Employee emp = employeeService.getOne(queryWrapper);//与数据库连接,获取数据库中的数据信息//3、如果没有查询到则返回登陆失败结果if(emp == null){return R.error("登陆失败");}//4、密码比对,如果不一致则返回登陆失败结果if(!emp.getPassword().equals(password)){//使用第二步中的获取数据库中的数据,被封装的对象emp,// 进行数据库中的数据获取。和实际的密码(用户端输入的密码)进行比较return R.error("登陆失败");}//5、查看员工的状态,如果为已禁用状态,则返回员工已禁用结果。员工的状态实际上就是数据库中给员工设定状态0/1if(emp.getStatus() == 0){return R.error("账号已禁用");}//6、登陆成功,将员工id存入最上面对象部分所创将的Session中,并通过Request返回登陆成功的结果给客户端request.getSession().setAttribute("emplpyee",emp.getId());return R.success(emp);}}
4.6后台登陆功能---功能测试 12
使用debug对前面的程序进行测试
五、后台退出功能开发 13
5.1需求分析 13
目前的状态信息如下:根据需求分析有以下逻辑思路
5.2代码书写
代码书写:
下图中的路径填写到注解@PostMapping中。
六、分析后台系统首页构成和效果展示方式 14
6.1系统首席效果展示方式的分析
数据准备部分:
数据效果实现的部分:
修改效果:
6.2不同模块点击后的效果实现分析:
第一步:
第二步:
第三步: