【Spring开发】SpringCloud交友项目实战第4篇:介绍,1. 完善用户信息【附代码文档】

🏆🏆🏆教程全知识点简介:1、Dubbo的前世今生 1、项目介绍 1.1、项目背景 1.2、市场分析 1.3、目标用户群体 1.4、使用场景 1.5、竞争对手分析 1.7、技术方案 2、前后端分离开发思想 3、开发工具与环境搭建 3.1、开发工具 3.2、环境搭建 4、sms_code验证玛 4.1 阿里云短信 4.2 自动装配 1. 完善用户信息 1.2 百度人脸识别 1.2.1 概述 1.2.2 账号申请 1.2.4 抽取模板工具 2.2 更新用户资料 2.2.1 接口文档 2.2.2 代码实现 3. 统一token处理 3.1.需求分析 3.2 解决方案 拦截器(Interceptor) ThreadLocal MongoDB入门 数据库以及表的操作 新增数据 更新数据 删除数据 查询数据 1.3 设置陌生人问题 1.4 通知设置 1.5 黑名单管理 4. SpringData-Mongo 4.2 完成基本操作 5. 今日佳人 5.1 表结构设计 5.2 服务提供者 5.2.0 导入依赖 5.2.2 RecommendUserApi接口 分片集群 原理介绍 集群搭建 2、圈子功能 2.1、功能说明 3、圈子实现 3.2、发布动态 1. 动态查询 1.1 查询好友动态 2. 圈子互动 2.3 动态点赞 2.4.3 喜欢标识 安装 准备 使用 1. 即时通信 2. 环信 2.1 开发简介 2.2 环信Console 2.3 环信API介绍 初始化 基础API 3. 抽取环信组件 3.1 编写Properties对象 3.2 编写HuanXinTemplate 3.3 编写自动配置类 2. MongoDB地理位置检索 2.1 地理位置索引 Point LineString Polygon 2.2 案例 3. 上报地理位置 4. 搜附近 1. 我的访客 1.2 记录访客数据 tanhua-model tanhua-app-server tanhua-dubbo-interface 1.3 首页谁看过我 需求分析 3. FastDFS 3.2. 工作原理 3.2.1. 文件的上传 分布式文件系统FDFS配置 4. 发布小视频 1、用户冻结解冻 1.1 用户冻结 1.3 查询数据列表 1.4 明日系统修改 2.2 定时任务 3、内容审核 1、了解推荐系统 1.1、什么是推荐系统? 1.3、推荐系统业务流程 1.4、协同过滤推荐算法 1.5、ALS算法 2、好友推荐 2.1、流程 2.2、部署好友推荐服务

📚📚👉👉👉本站这篇博客: https://bbs.huaweicloud.com/blogs/459447 中查看
✨ 本教程项目亮点
🧠 知识体系完整:覆盖从基础原理、核心方法到高阶应用的全流程内容
💻 全技术链覆盖:完整前后端技术栈,涵盖开发必备技能
🚀 从零到实战:适合 0 基础入门到提升,循序渐进掌握核心能力
📚 丰富文档与代码示例:涵盖多种场景,可运行、可复用
🛠 工作与学习双参考:不仅适合系统化学习,更可作为日常开发中的查阅手册
🧩 模块化知识结构:按知识点分章节,便于快速定位和复习
📈 长期可用的技术积累:不止一次学习,而是能伴随工作与项目长期参考
🎯🎯🎯全教程总章节
🚀🚀🚀本篇主要内容
介绍
- 完善用户信息
- 用户信息管理
- 统一token处理
- 统一异常处理
1. 完善用户信息
用户在首次登录时需要完善个人信息,包括性别昵称生日城市头像等。其中,头像数据需要做图片上传,这里采用阿里云的OSS服务作为 的图片服务器,并且对头像要做人脸识别,非人脸照片不得上传。
-
首次登录时(手机号码不存在),需要创建用户存入数据库中
-
客户端检测首次登录需要完善用户信息
- 填写用户基本信息
- 上传用户头像(需要人脸认证)
1.1 阿里云OSS
实现图片上传服务,需要有存储的支持,那么 的解决方案将以下几种:
- 直接将图片保存到服务的硬盘(springmvc中的文件上传)
- 优点:开发便捷,成本低
- 缺点:扩容困难
- 使用分布式文件系统进行存储
- 优点:容易实现扩容
- 缺点:开发复杂度稍大(有成熟的产品可以使用,比如:FastDFS,MinIO)
- 使用第三方的存储服务
- 优点:开发简单,拥有强大功能,免维护
- 缺点:付费
在本套中选用阿里云的OSS服务进行图片存储。
1.1.1 概述
对象存储服务(Object Storage Service,OSS)是一种海量安全低成本高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
地址:
1.1.2 账号申请
购买服务
使用第三方服务最大的缺点就是需要付费,下面, 看下如何购买开通服务。
购买下行流量包: (不购买也可以使用,按照流量付费)
说明:OSS的上行流量是免费的,但是下行流量是需要购买的。
创建Bucket
使用OSS,首先需要创建Bucket,Bucket翻译成中文是水桶的意思,把存储的图片资源看做是水,想要盛水必须得有桶,就是这个意思了。
进入控制台,
选择Bucket后,即可看到对应的信息,如:url消耗流量等 :
文件管理:
package com.tanhua.test;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.baomidou.mybatisplus.annotation.TableId;
import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
public class OssTest {
/**
* 案例:
* 将资料中的1.jpg上传到阿里云OSS
* 存放的位置 /yyyy/MM/dd/xxxx.jpg
*/
@Test
public void testOss() throws FileNotFoundException {
//1、配置图片路径
String path = "C:\\Users\\lemon\\Desktop\\资源\\02-完善用户信息\\03-资料\\1.jpg";
//2、构造FileInputStream
FileInputStream inputStream = new FileInputStream(new File(path));
//3、拼写图片路径
String filename = new SimpleDateFormat("yyyy/MM/dd").format(new Date())
+"/"+ UUID.randomUUID().toString() + path.substring(path.lastIndexOf("."));
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为
String endpoint = "oss-cn-beijing.aliyuncs.com";
String accessKeyId = "LTAI4GKgob9vZ53k2SZdyAC7";
String accessKeySecret = "LHLBvXmILRoyw0niRSBuXBZewQ30la";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
// 填写Byte数组。
// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。
ossClient.putObject("tanhua001", filename, inputStream);
// 关闭OSSClient。
ossClient.shutdown();
String url = " + filename;
System.out.println(url);
}
}
[Spring AMQP 文档]
查看文件:
![image-20201017113557135]
1.2.2 账号申请
账号登录注册
百度云AI支持百度账号登录,也可以支持云账号。按需注册即可
创建应用
按需创建应用
1.2.3 人脸识别测试
```java package com.tanhua.test;
import com.baidu.aip.face.AipFace; import org.json.JSONObject;
import java.util.HashMap;
public class AipFaceTest {
//设置APPID/AK/SK
public static final String APP_ID = "24021388";
public static final String API_KEY = "ZnMTwoETXnu4OPIGwGAO2H4G";
public static final String SECRET_KEY = "D4jXShyinv5q26bUS78xRKgNLnB9IfZh";
public static void main(String[] args) {
// 初始化一个AipFace
AipFace client = new AipFace(APP_ID, API_KEY, SECRET_KEY);
// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
// 调用接口
String image = "
String imageType = "URL";
HashMap<String, String> options = new HashMap<String, String>();
options.put("face_field", "age");
options.put("max_face_num", "2");
options.put("face_type", "LIVE");
options.put("liveness_control", "LOW");
// 人脸检测
JSONObject res = client.detect(image, imageType, options);
System.out.println(res.toString(2));
- 点赞
- 收藏
- 关注作者
评论(0)