网站首页 > 精选文章 正文
今天是刘小爱自学Java的第169天。
感谢你的观看,谢谢你。
学习计划安排如下:
- 昨天分析并编写了一部分搜索页面的代码。
- 今天补全发送请求的代码,并完成后台响应。
一、搜索页面发送请求
使用axios发送请求,当然为了后续方便,axios被封装到了自定义的common组件中。
所以后续需要发送请求时,直接使用ly.http即能发送请求,就等价于使用axios一样。
自定义组件中配置了axios的基础请求路径baseURL,所以请求的完整路径是baseURL加上post方法中编写的请求路径。
其中存在有一个跨域问题,目前来说我们一共定义了4个域名:
- 网关对应的域名:也就是请求的入口。
- 后台管理系统对应的域名。
- 关于图片存储对应的域名。
- 前台门户系统对应的域名
当然这些域名目前都是假的,但是真实的开发中会使用到真的域名。
无论是后台管理系统还是前台门户系统,它们发送请求时都要跨域到网关,所以需要解决跨域问题。
在第144天学习笔记中有解决跨域问题的完整方案,我做一个简单的说明:
本来是要使用cors调用api给各个相关属性设定值,但是在springBoot中可以使用yam配置文件说明。
上述就是给各个属性设定了对于的值,核心属性就是allowedOrigins,意味着允许跨域的域名。
因为都是要跨域到网关,所以需要在网关微服务中做好配置。
二、Java后台代码
1请求相关说明
①请求参数
因为请求参数为json数据,所以创建一个实体类SearchRequest和其对应。
在controller层中使用注解@RequestBody将请求参数转换成SearchRequest对象。
其中要注意的是:
在后台管理系统中管理人员可以自行设定分页大小,但是在前台门户系统中一般分页大小都会设定好一个固定的值,不会让用户自行决定。
②请求方式和请求路径
Post请求,真实路径为page。
③返回值
为商品分页数据,关于分页实体类很早的时候就配置在了common微服务中。
但凡是需要分页的,直接调用该实体类即可。
2service层代码
①获取请求参数并校验
我们昨天就以京东为例说明过,搜索参数不能为空,如果为空会查不到数据。
key字段虽然在前端也有校验不能为空,但是前端校验只能防君子不能防小人,所以后台最好也要加一个校验。
②原生的查询
queryBuilder这个对象可以链式编程,说明查询相关,api都是以with开头:
- withPageable()对应分页,PageRequest调用静态方法of()说明分页数据。
- withQuery()对应搜索条件,QueryBuiders调用静态方法matchQuery说明match匹配。
③搜索查询结果
通过goodsRepository调用search查询,参数即为queryBuilder调用build()方法。
反正这种以Builder为后缀的类,最后要用build()方法结尾。
3关于Repository
Repository本身就是仓库、资源库的意思,其就相当于以前一直接触的mapper层。
只不过在索引库搜索中是使用Repository,继承ElasticsearchRepository接口即可使用了。
上述代码中索引库的原生查询在第162天学习笔记中就详细学过,如果忘记了可以做一个回顾。
至于前端拿到响应的数据后,如何完成页面的渲染就不说明,暂且没时间学完这些。
最后
行有不得反求诸己,我是@刘小爱
一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。
猜你喜欢
- 2025-08-03 Gitlab搭建及配置
- 2025-08-03 如何修改Dify默认80端口
- 2025-08-03 WeClone 用微信聊天记录打造你的「数字分身」
- 2025-08-03 使用vite为vue项目配置@别名
- 2025-08-03 NAS轻松部署自己的即时通讯—唐僧叨叨,八年时间打造
- 2025-08-03 Spring Boot 的 3 种动态 Bean 注入技巧
- 2025-08-03 手摸手,带你用vue撸后台
- 2025-08-03 无感刷新Token:如何做到让用户“永不掉线”
- 2025-08-03 Spring Boot 十大开源 "王炸"
- 2025-08-03 一个神奇的小工具,让URL地址都变成了"ooooooooo"
- 08-05俄罗斯宣布单方面停止在马里乌波尔亚速钢铁厂的作战行动
- 08-05普京签令!面向所有乌克兰居民
- 08-05一文读懂在Windows系统中如何安装mysqlclient
- 08-05轻量级命令行工具ZIN MCP Client
- 08-05Python3.7如何快速安装mysqlclient
- 08-05DHCP是什么,为什么需要他!
- 08-05Linux通过命令行连接wifi的方式
- 08-05运维+技术支持必看,Linux中排除网络故障时必须要会的Linux命令
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)