当前位置:网站首页 > Java基础 > 正文

java 基础实战



软件开发流程

在这里插入图片描述

角色分工

在这里插入图片描述


开发环境搭建

创建普通Maven项目编写pom.xml导入依赖
 
配置文件application.yml
 
启动类编写

src/main/java/com/XXX/reggie/ReggieApplication.java

 
配置类编写 完成MVC框架静态资源映射

config/WebMvcConfig

 

再次启动查看日志是否成功,然后访问页面http://localhost:8080/backend/index.html
在这里插入图片描述
ps:不管用的看看放的路径是否正确,启动类要在最外层
在这里插入图片描述


员工管理功能


后台登录功能

需求分析

http://localhost:8080/backend/page/login/login.html打开登陆页面
按下F12,点击登录按钮,发送请求并题交参数
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

数据模型

创建实体类Employee与数据模型(employee表)映射
在这里插入图片描述
创建实体类entity / Employee.java

 
代码开发

创建mapper,service,controller层
项目结构图
在这里插入图片描述

 

service层

实现通用增删改查的service接口
([service接口继承IService]
(https://blog.csdn.net/weixin_/article/details/))

 

自定义通用Service方法
service实现类 继承ServiceImpl<EmployeeMapper,Employee>
并执行EmployeeService 接口

 

controller层
在这里插入图片描述

 

编写 通用返回结果Result类
/common / Result
(通用结果类,服务端响应的所以结果最终都会包装成各种类型返回给前端页面)
在这里插入图片描述
需要后端返给前端code,data,msg

 

登陆方法代码实现

java 基础实战在这里插入图片描述
在这里插入图片描述
根据post请求方式,请求URL

在这里插入图片描述
根据返回的Jason数据

需要用到request去getSession

 
业务逻辑:

在controller中创建登录方法
在这里插入图片描述

 
功能测试

完善登录功能(过滤器)

需求分析

在这里插入图片描述

代码开发

实现步骤:
1、创建自定义过滤器LoginCheckFilter
2、在启动类上加入注解@ServletComponentScan
3.完善过滤器的处理逻辑

…/Application.java 启动类中加上注解

 
业务逻辑

在这里插入图片描述

 

注意:
NOTLOGIN 与静态资源中…/js/request.js中响应拦截器里msg信息要一致不然刷新到index.html页面不会跳转到登录页面
在这里插入图片描述

功能测试

在这里插入图片描述


后台退出功能

需求分析
代码开发

用户点击页面中退出按钮,发送请求,请求地址为/employee/logout,请求方式为POST。我们只需要在Controller中创建对应的处理方法即可,具体的处理逻辑:
1、清理Session中的用户id
2、返回结果

 
功能测试

省略


新增员工功能

需求分析

在这里插入图片描述

数据模型

在这里插入图片描述

新增用户的用户名设置为unique具有唯一属性,status状态要有默认值1不被禁用

代码开发

在这里插入图片描述

在这里插入图片描述

 

在这里插入图片描述

 
功能测试

在这里插入图片描述

在这里插入图片描述
前端返给服务端参数,服务端返还jason数据


员工信息分页查询功能

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述
…/config/MybatisPlusConfig

 
 
功能测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


启用/禁用员工账号功能

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述

功能测试

在这里插入图片描述

 

原来修改代码可执行但无效修改,需要修复
在这里插入图片描述
在这里插入图片描述

代码修复

在这里插入图片描述

…/common/JacksonObjectMapper配置类
 
扩展SpringMvc的消息转换器

…/config/WebMvcConfig.java

 
再次测试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


编辑员工信息功能

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述

 
功能测试

在这里插入图片描述


分类管理功能


公共字段自动填充功能

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述

 

这里先将createUser和updateUser的id值写死为1,后面完善功能会用获取的id替换

 
功能完善

在这里插入图片描述
验证一次请求,走的同一个线程

把测试日志插入
LoginCheckFiter.java
EmployeeController.java
MyMetaObjectHandler.java程序中,打开修改页面保存看结果

 

在这里插入图片描述

ThreadLocal

在这里插入图片描述

在这里插入图片描述

 

在这里插入图片描述

 
功能测试

在这里插入图片描述


新增分类功能

需求分析

在这里插入图片描述
在这里插入图片描述

数据模型

在这里插入图片描述

在这里插入图片描述

代码开发

在这里插入图片描述

Entity实体类
 

Mapper接口

 
业务层Service接口
 
业务层ServiceImpl实现类
 
Controller控制层
 

在这里插入图片描述

 
功能测试

分类信息分类查询功能

需求分析
代码开发

在这里插入图片描述
构造根据sort值排序的条件构造器

 
功能测试

在这里插入图片描述
在这里插入图片描述


删除功能

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述

 

在这里插入图片描述
这里只给Dish和Setmeal的实体类代码,剩下的接口和实现类与之前类似,此处省略

 
 

回到categoryService层重写remove方法
在这里插入图片描述

public void remove(Long id);
在这里插入图片描述

自定义异常类

 

在全局处理中处理异常

 
功能测试

在这里插入图片描述
出现bug,属于前后端id名不同导致,多亏弹幕大军
在这里插入图片描述
然后在静态资源中找到发现,前端定义的接口参数是ids,而我们controller写的参数是id
刚开始我以为两种方式改变其中任意一个对应上就行,但改前端接口还是不行,所以只能妥协的改掉controller方法里的参数为ids

ps:有知道的大佬还请赐教

 

在这里插入图片描述


修改分类功能

需求分析

在这里插入图片描述

代码开发
 
功能测试

在这里插入图片描述
在这里插入图片描述


菜品管理功能

文件上传下载

简要介绍

文件上传
在这里插入图片描述
前端文件上传组件
在这里插入图片描述
在这里插入图片描述

文件下载
在这里插入图片描述

代码开发

服务端文件上传

在这里插入图片描述

两种方式:
1.在过滤器中添加放行路径
在这里插入图片描述
2.先登录再打开上传界面

在这里插入图片描述

 
功能测试

在这里插入图片描述


新增菜品

需求分析

在这里插入图片描述

数据模型

在这里插入图片描述
在这里插入图片描述

代码开发
下菜品分类下拉框选项数据展示功能

在这里插入图片描述
…/controller/CatergoryController

 
添加菜品页面数据保存功能

在这里插入图片描述

在这里插入图片描述
DishDTo实体类(原来的Dish实体类中没有菜品口味的name和value属性)

 

在接口中自定义方法(操作两张表)

 

实现类重写方法

 
JAVA 批量修改List里面某个字段的方法

方法一:通过流的方式

 

方法二:通过forEach

 

在这里插入图片描述

最后在DishController中的save方法中调用自定义方法

 
功能测试

在这里插入图片描述


菜品信息分页查询

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述

 

在这里插入图片描述
菜品分类一栏没有显示,可以看到后端返回的是categoryId,应该返回categoryName菜品名称

 
功能测试

在这里插入图片描述


修改菜品

需求分析

在这里插入图片描述

代码开发

在这里插入图片描述

修改前数据回显

回显数据涉及两个表的数据,到DishService中自定义get方法(获取dish表中基本信息以及dish_flavor中对应的口味信息)

这里使用DishDto为返回对象类型,与页面数据对应

 
 
 

回显后修改保存

功能测试

自我完善部分


菜品售卖状态修改功能(批量修改)

菜品删除功能(批量删除)


套餐管理功能

新增套餐功能

需求分析

在这里插入图片描述

数据模型

在这里插入图片描述

代码开发

在这里插入图片描述
SetmealDish 套餐餐品

 
 

接口和控制层省略…


在这里插入图片描述
1-2.套餐分类和菜品分类的数据获取(CategoryController中处理过)()
3.在DishController中

 

4-5.图片上传下载也已经处理过了

6.需要自定义保存方法
(原因:只操作setmeal表,套餐中的菜品信息无法保存)
在SetmealService中自定义保存方法,调用setmeal和seatmeal_dish表

 
功能测试

可选菜品展示
在这里插入图片描述
保存功能
setmeal套餐表
在这里插入图片描述
setmeal_dish套餐菜品关联表
在这里插入图片描述

套餐信息分页查询功能

需求分析

在这里插入图片描述

代码开发
 
功能测试

在这里插入图片描述
在这里插入图片描述

删除套餐

需求分析
代码开发
功能测试

短信发送功能

短信服务

在这里插入图片描述
阿里云短信服务
在这里插入图片描述

官网注册——>控制台——>云通信
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
了解即可,签名申请需要三证合一比较繁琐
在这里插入图片描述
模板详情
在这里插入图片描述

AccessKey 创建子用户安全系数高
在这里插入图片描述
创建用户
在这里插入图片描述

在这里插入图片描述

需求分析

在这里插入图片描述

数据模型

在这里插入图片描述

代码开发

在这里插入图片描述
阿里云短信服务官方文档

Java SDK使用手册

导入短信发送所需maven坐标
 

在这里插入图片描述
在这里插入图片描述

User实体类创建
 
短信发送SMSUtils工具类
 
随机生成验证码工具类ValidateCodeUtils工具类
 
修改LoginCheckFilter过滤器

  • 上一篇: java基础进制
  • 下一篇: java自学的基础
  • 版权声明


    相关文章:

  • java基础进制2025-04-07 09:26:04
  • java必备基础知识2025-04-07 09:26:04
  • java基础例题62025-04-07 09:26:04
  • java难学吗有基础2025-04-07 09:26:04
  • java基础程序竞赛2025-04-07 09:26:04
  • java自学的基础2025-04-07 09:26:04
  • java语言基础整理2025-04-07 09:26:04
  • java基础教材大纲2025-04-07 09:26:04
  • java 经典基础考题2025-04-07 09:26:04
  • java 基础语法2025-04-07 09:26:04