【完结14章】鸿蒙系统实战短视频App 从0到1掌握HarmonyOS

huiguniang2008 · · 197 次点击 · 开始浏览    置顶

【完结14章】鸿蒙系统实战短视频App 从0到1掌握HarmonyOS 给大家分享一套视频课程——鸿蒙系统实战短视频App 从0到1掌握HarmonyOS,已完结14章,附源码。大家下载学习。 华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端,实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。 鸿蒙的英文名是HarmonyOS,意为和谐。这个新的操作系统将打通手机、电脑、平板、电视、 工业自动化控制、无人驾驶、车机设备 、智能穿戴统一成一个操作系统,并且该系统是面向下一代技术而设计的,能兼容全部安卓应用的所有Web应用。若安卓应用重新编译,在鸿蒙OS上,运行性能提升超过60%。 鸿蒙OS架构中的内核会把之前的Linux内核、鸿蒙OS微内核与LiteOS合并为一个鸿蒙OS微内核。 创造一个超级虚拟终端互联的世界,将人、设备、场景有机联系在一起。同时由于鸿蒙系统微内核的代码量只有Linux宏内核的千分之一,其受攻击几率也大幅降低。 分布式架构首次用于终端OS,实现跨终端无缝协同体验;确定时延引擎和高性能IPC技术实现系统天生流畅; 基于微内核架构重塑终端设备可信安全;对于消费者而言,HarmonyOS通过分布式技术,让8+N设备具备智慧交互的能力。在不同场景下,8+N配合华为手机提供满足人们不同需求的解决方案。对于智能硬件开发者,HarmonyOS可以实现硬件创新,并融入华为全场景的大生态。对于应用开发者,HarmonyOS让他们不用面对硬件复杂性,通过使用封装好的分布式技术APIs,以较小投入专注开发出各种全场景新体验。 对于一些小系统来讲,出现异常直接抛就行,甚至不规范的使用,但是我们这里规范一些,引入自定义异常,这么一来可以更加规范我们的项目。与此同时可以使得代码解耦。提高可用性。 package com.imooc.exception; import com.imooc.grace.result.ResponseStatusEnum; /** * 优雅处理异常,统一封装 */ public class GraceException { public static void display(ResponseStatusEnum responseStatus) { throw new MyCustomException(responseStatus); } } package com.imooc.exception; import com.imooc.grace.result.ResponseStatusEnum; import com.imooc.utils.MD5Utils; /** * 自定义异常 * 目的:1. 统一异常处理和管理 * 2. service与controller错误解耦,不会被service返回的类型而限制 * * RuntimeException: 没有侵入性,如果继承Exception,则代码中需要使用try/catch */ public class MyCustomException extends RuntimeException { private ResponseStatusEnum responseStatus; public MyCustomException(ResponseStatusEnum responseStatus) { super("异常状态码: " + responseStatus.status() + "; 异常信息: " + responseStatus.msg()); this.responseStatus = responseStatus; } public ResponseStatusEnum getResponseStatus() { return responseStatus; } public void setResponseStatus(ResponseStatusEnum responseStatus) { this.responseStatus = responseStatus; } } package com.imooc.exception; /** * 统一异常拦截处理 * 可以针对异常类型进行补货处理,然后返回信息到页面 */ @ControllerAdvice public class GraceExceptionHandler { final static Logger logger = LoggerFactory.getLogger(GraceExceptionHandler.class); /** * 只要抛出MyCustomException,就会被此方法拦截到,随后可以自定义处理 * @param e * @return */ @ExceptionHandler(MyCustomException.class) @ResponseBody public GraceJSONResult returnMyException(MyCustomException e) { logger.error(e.getMessage()); e.printStackTrace(); return GraceJSONResult.exception(e.getResponseStatus()); } } 一键登录注册的原理就是整合了注册和登录,查询数据库,该用户是否注册过。 如果用户不为空并且状态已经冻结,则直接抛出异常,无法登录。 如果没有注册过,注册用户信息入库,用户状态未激活。 接口 com.imooc.user.service.UserService.java /** * 判断用户是否存在 */ public AppUser queryMobileIsExist(String mobile); /** * 创建用户 */ public AppUser createUser(String mobile); 文件上传,前端构建file文件对象,那么后端客户获得MultipartFile对象,从中就能拿到file流,随后进行输出保存。当然我们需要验证后缀名,如果不验证,那么非法用户会上传恶意脚本文件来攻击你的服务器。 com.imooc.api.controller.files.FileUploaderControllerApi @Api(value = "文件上传controller", tags = {"文件上传controller"}) @RequestMapping("fs") public interface FileUploaderControllerApi { @ApiOperation(value = "上传用户头像", notes = "上传用户头像", httpMethod = "POST") @PostMapping("uploadFace") public GraceJSONResult uploadFace( @RequestParam String userId, MultipartFile file) throws Exception; } ![QQ截图20231204142338.png](https://static.golangjob.cn/231204/afb98204fb058ebaeb8fcc3a2e02af72.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

197 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传