当前位置: 首页 > news >正文

Spring Boot 集成阿里云直播点播

在当今数字化时代,视频直播和点播服务已经成为许多应用的核心功能。阿里云提供了强大的直播和点播服务,能够满足各种规模的应用需求。而 Spring Boot 作为一种流行的 Java 开发框架,能够快速构建高效的应用程序。本文将详细介绍如何在 Spring Boot 项目中集成阿里云直播点播服务,包括服务介绍、集成步骤、配置项以及实际应用案例。

一、引言

随着互联网的发展,视频直播和点播服务越来越受到人们的关注。无论是在线教育、企业培训、电商直播还是娱乐视频,都需要高质量的视频服务。阿里云直播点播服务提供了稳定、高效、安全的视频解决方案,能够满足各种应用场景的需求。而 Spring Boot 作为一种快速开发框架,能够帮助开发者快速构建应用程序,提高开发效率。将 Spring Boot 与阿里云直播点播服务集成,可以构建出强大的多媒体应用,为用户提供更好的体验。

二、阿里云直播点播服务介绍

(一)阿里云直播服务

  1. 功能特点
    • 高并发、低延迟:能够支持大规模的用户同时观看直播,延迟低至秒级。
    • 多种推流方式:支持 RTMP、FLV、HLS 等多种推流方式,满足不同设备和场景的需求。
    • 实时转码:可以根据用户的需求进行实时转码,支持多种分辨率和码率,适应不同的网络环境。
    • 直播录制:可以将直播内容录制下来,方便用户回放和存档。
    • 安全防护:提供多种安全防护措施,如防盗链、IP 黑名单等,保障直播的安全。
  2. 应用场景
    • 电商直播:为电商平台提供直播服务,展示商品、介绍产品特点、进行促销活动等。
    • 在线教育:为在线教育平台提供直播服务,进行远程教学、在线辅导等。
    • 企业培训:为企业提供直播服务,进行内部培训、会议直播等。
    • 娱乐直播:为娱乐平台提供直播服务,进行游戏直播、才艺表演等。

(二)阿里云点播服务

  1. 功能特点
    • 高可靠、高可用:采用分布式架构,保证视频的存储和播放的高可靠性和高可用性。
    • 多种上传方式:支持本地上传、URL 上传、FTP 上传等多种上传方式,方便用户上传视频。
    • 视频处理:提供视频转码、截图、水印、加密等多种视频处理功能,满足用户的不同需求。
    • 播放控制:支持多种播放控制功能,如播放进度控制、音量控制、全屏播放等。
    • 数据分析:提供视频播放数据统计分析功能,帮助用户了解视频的播放情况。
  2. 应用场景
    • 在线视频平台:为在线视频平台提供视频存储和播放服务,支持用户上传、观看、分享视频。
    • 企业宣传视频:为企业提供视频存储和播放服务,展示企业形象、产品介绍、企业文化等。
    • 教育培训视频:为教育培训平台提供视频存储和播放服务,支持用户上传、观看、下载教学视频。
    • 个人视频分享:为个人用户提供视频存储和播放服务,方便用户分享自己的生活点滴、旅游经历等。

三、Spring Boot 集成阿里云直播点播服务的步骤

(一)开通阿里云直播点播服务

  1. 注册阿里云账号
    • 如果还没有阿里云账号,可以前往阿里云官网进行注册。
  2. 开通直播点播服务
    • 在阿里云控制台中,选择 “产品与服务”->“视频服务”->“直播” 或 “点播”,根据提示开通相应的服务。

(二)创建直播或点播应用

  1. 登录阿里云控制台
    • 使用注册的阿里云账号登录阿里云控制台。
  2. 创建直播应用
    • 在阿里云控制台中,选择 “产品与服务”->“视频服务”->“直播”,点击 “创建应用” 按钮,根据提示创建直播应用。
  3. 创建点播应用
    • 在阿里云控制台中,选择 “产品与服务”->“视频服务”->“点播”,点击 “创建应用” 按钮,根据提示创建点播应用。

(三)获取阿里云直播点播服务的 AccessKey 和 SecretKey

  1. 登录阿里云控制台
    • 使用注册的阿里云账号登录阿里云控制台。
  2. 进入 AccessKey 管理页面
    • 在阿里云控制台中,选择 “用户头像”->“AccessKey 管理”,进入 AccessKey 管理页面。
  3. 创建 AccessKey
    • 如果还没有 AccessKey,可以点击 “创建 AccessKey” 按钮,根据提示创建 AccessKey。创建成功后,会显示 AccessKey ID 和 AccessKey Secret。

(四)在 Spring Boot 项目中添加阿里云直播点播服务的依赖

  1. 在 pom.xml 文件中添加依赖
    • 在 Spring Boot 项目的 pom.xml 文件中,添加以下依赖:

<!-- 阿里云直播服务依赖 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-live</artifactId><version>4.4.2</version>
</dependency><!-- 阿里云点播服务依赖 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-vod</artifactId><version>2.15.2</version>
</dependency>

  1. 导入依赖
    • 在项目的构建工具(如 Maven 或 Gradle)中,导入上述依赖。

(五)配置阿里云直播点播服务的参数

  1. 在 application.properties 文件中添加配置
    • 在 Spring Boot 项目的 application.properties 文件中,添加以下配置:

# 阿里云直播服务配置
aliyun.live.accessKeyId=<your_access_key_id>
aliyun.live.accessKeySecret=<your_access_key_secret>
aliyun.live.domain=<your_live_domain># 阿里云点播服务配置
aliyun.vod.accessKeyId=<your_access_key_id>
aliyun.vod.accessKeySecret=<your_access_key_secret>

其中,<your_access_key_id><your_access_key_secret>是在阿里云控制台中获取的 AccessKey ID 和 AccessKey Secret,<your_live_domain>是直播应用的域名。

  1. 读取配置参数
    • 在 Spring Boot 项目中,可以使用@Value注解读取配置参数,例如:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class AliyunLiveConfig {@Value("${aliyun.live.accessKeyId}")private String accessKeyId;@Value("${aliyun.live.accessKeySecret}")private String accessKeySecret;@Value("${aliyun.live.domain}")private String domain;public String getAccessKeyId() {return accessKeyId;}public String getAccessKeySecret() {return accessKeySecret;}public String getDomain() {return domain;}
}

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class AliyunVodConfig {@Value("${aliyun.vod.accessKeyId}")private String accessKeyId;@Value("${aliyun.vod.accessKeySecret}")private String accessKeySecret;public String getAccessKeyId() {return accessKeyId;}public String getAccessKeySecret() {return accessKeySecret;}
}

(六)创建直播或点播服务的客户端

  1. 创建直播服务客户端
    • 在 Spring Boot 项目中,可以使用阿里云直播服务的 SDK 创建直播服务客户端,例如:
import com.aliyun.live20161101.Client;
import com.aliyun.live20161101.models.DescribeLiveStreamsOnlineListRequest;
import com.aliyun.live20161101.models.DescribeLiveStreamsOnlineListResponse;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AliyunLiveClient {@Autowiredprivate AliyunLiveConfig aliyunLiveConfig;public DescribeLiveStreamsOnlineListResponse describeLiveStreamsOnlineList() {try {Config config = new Config().setAccessKeyId(aliyunLiveConfig.getAccessKeyId()).setAccessKeySecret(aliyunLiveConfig.getAccessKeySecret());Client client = new Client(config);DescribeLiveStreamsOnlineListRequest request = new DescribeLiveStreamsOnlineListRequest();return client.describeLiveStreamsOnlineList(request);} catch (Exception e) {e.printStackTrace();return null;}}
}

  1. 创建点播服务客户端
    • 在 Spring Boot 项目中,可以使用阿里云点播服务的 SDK 创建点播服务客户端,例如:
import com.aliyun.vod20170321.Client;
import com.aliyun.vod20170321.models.GetVideoPlayAuthRequest;
import com.aliyun.vod20170321.models.GetVideoPlayAuthResponse;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AliyunVodClient {@Autowiredprivate AliyunVodConfig aliyunVodConfig;public GetVideoPlayAuthResponse getVideoPlayAuth(String videoId) {try {Config config = new Config().setAccessKeyId(aliyunVodConfig.getAccessKeyId()).setAccessKeySecret(aliyunVodConfig.getAccessKeySecret());Client client = new Client(config);GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest().setVideoId(videoId);return client.getVideoPlayAuth(request);} catch (Exception e) {e.printStackTrace();return null;}}
}

(七)使用直播或点播服务的客户端进行操作

  1. 使用直播服务客户端进行操作
    • 在 Spring Boot 项目中,可以使用直播服务客户端进行各种操作,例如查询在线直播流列表、创建直播推流地址等,例如:

import com.aliyun.live20161101.models.DescribeLiveStreamsOnlineListResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class AliyunLiveService {@Autowiredprivate AliyunLiveClient aliyunLiveClient;public DescribeLiveStreamsOnlineListResponse describeLiveStreamsOnlineList() {return aliyunLiveClient.describeLiveStreamsOnlineList();}
}

  1. 使用点播服务客户端进行操作
    • 在 Spring Boot 项目中,可以使用点播服务客户端进行各种操作,例如获取视频播放地址、上传视频等,例如:

import com.aliyun.vod20170321.models.GetVideoPlayAuthResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class AliyunVodService {@Autowiredprivate AliyunVodClient aliyunVodClient;public GetVideoPlayAuthResponse getVideoPlayAuth(String videoId) {return aliyunVodClient.getVideoPlayAuth(videoId);}
}

四、Spring Boot 集成阿里云直播点播服务的配置项

(一)阿里云直播服务配置项

  1. aliyun.live.accessKeyId:阿里云直播服务的 AccessKey ID。
  2. aliyun.live.accessKeySecret:阿里云直播服务的 AccessKey Secret。
  3. aliyun.live.domain:直播应用的域名。

(二)阿里云点播服务配置项

  1. aliyun.vod.accessKeyId:阿里云点播服务的 AccessKey ID。
  2. aliyun.vod.accessKeySecret:阿里云点播服务的 AccessKey Secret。

五、Spring Boot 集成阿里云直播点播服务的实际应用案例

(一)电商直播应用

  1. 应用场景
    • 在电商平台中,商家可以通过直播的方式展示商品、介绍产品特点、进行促销活动等,吸引用户购买商品。
  2. 实现步骤
    • 在 Spring Boot 项目中,集成阿里云直播服务,创建直播应用,获取直播推流地址和播放地址。
    • 在电商平台的前端页面中,嵌入直播播放器,展示直播内容。
    • 用户可以在直播页面中观看直播、与商家互动、购买商品等。

(二)在线教育应用

  1. 应用场景
    • 在在线教育平台中,教师可以通过直播的方式进行远程教学、在线辅导等,学生可以在直播页面中观看直播、提问、与教师互动等。
  2. 实现步骤
    • 在 Spring Boot 项目中,集成阿里云直播服务,创建直播应用,获取直播推流地址和播放地址。
    • 在在线教育平台的前端页面中,嵌入直播播放器,展示直播内容。
    • 教师可以在直播页面中进行教学、分享课件、与学生互动等。
    • 学生可以在直播页面中观看直播、提问、与教师互动等。

(三)视频点播应用

  1. 应用场景
    • 在视频点播平台中,用户可以上传、观看、分享视频,平台可以对视频进行管理、分类、推荐等。
  2. 实现步骤
    • 在 Spring Boot 项目中,集成阿里云点播服务,创建点播应用,获取视频上传地址和播放地址。
    • 在视频点播平台的前端页面中,嵌入视频播放器,展示视频内容。
    • 用户可以在视频点播页面中上传、观看、分享视频,平台可以对视频进行管理、分类、推荐等。

六、性能优化和故障排除

(一)性能优化

  1. 优化直播推流和播放质量
    • 选择合适的推流和播放协议,如 RTMP、FLV、HLS 等,根据网络环境和设备类型进行选择。
    • 调整推流和播放的参数,如分辨率、码率、帧率等,根据网络环境和设备性能进行调整。
    • 使用阿里云直播服务的实时转码功能,根据用户的网络环境和设备类型进行实时转码,提高直播的质量和兼容性。
  2. 优化点播视频的加载速度
    • 使用阿里云点播服务的视频加速功能,提高视频的加载速度和播放流畅度。
    • 对视频进行合理的分类和标签管理,方便用户查找和观看视频。
    • 优化视频播放器的代码,提高视频的加载速度和播放流畅度。

(二)故障排除

  1. 直播推流和播放故障
    • 检查推流设备和网络环境,确保推流设备正常工作,网络环境稳定。
    • 检查直播应用的配置和参数,确保直播应用的配置正确,参数合理。
    • 查看阿里云直播服务的控制台,查看直播流的状态和错误信息,根据错误信息进行故障排除。
  2. 点播视频播放故障
    • 检查视频播放器的代码,确保视频播放器的代码正确,没有错误。
    • 检查视频的上传和处理过程,确保视频上传成功,处理过程正常。
    • 查看阿里云点播服务的控制台,查看视频的状态和错误信息,根据错误信息进行故障排除。

七、总结

本文详细介绍了如何在 Spring Boot 项目中集成阿里云直播点播服务,包括服务介绍、集成步骤、配置项、实际应用案例以及性能优化和故障排除等方面的内容。通过集成阿里云直播点播服务,我们可以构建出强大的多媒体应用,为用户提供更好的体验。在实际应用中,我们可以根据具体的需求和场景,灵活地使用阿里云直播点播服务,提高应用的质量和竞争力。希望本文对大家在 Spring Boot 集成阿里云直播点播服务方面有所帮助。

相关文章:

Spring Boot 集成阿里云直播点播

在当今数字化时代&#xff0c;视频直播和点播服务已经成为许多应用的核心功能。阿里云提供了强大的直播和点播服务&#xff0c;能够满足各种规模的应用需求。而 Spring Boot 作为一种流行的 Java 开发框架&#xff0c;能够快速构建高效的应用程序。本文将详细介绍如何在 Spring…...

舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)

舍伍德业务安全架构&#xff08;Sherwood Applied Business Security Architecture, SABSA&#xff09;是一个企业级的安全架构框架&#xff0c;它提供了一个全面的方法来设计和实现信息安全策略。SABSA模型将业务需求与安全控制相结合&#xff0c;确保企业的信息安全措施能够支…...

论可以对抗ai编程的软件开发平台(直接把软件需求描述变成软件的抗ai开发平台)的设计

论可以对抗ai编程的软件开发平台&#xff08;直接把软件需求描述变成软件的抗ai开发平台&#xff09;的设计 大家知道&#xff0c;传统的数学密码&#xff0c;都可以被量子计算机破解&#xff0c;但是这些年发展出很多数学密码&#xff0c;量子计算机也破解不了&#xff0c;叫…...

饿了么数据库表设计

有商家表、商品表、商品规格表、购物车表&#xff0c;不难分析出表是不够全面的。 (1)首先分析需要补充的表 1.对于购物车而言肯定有对应的用户&#xff0c;因此要添加一个用户表。 2.商品规格是冷&#xff0c;热&#xff0c;半分糖、全糖&#xff0c;对于冷热和半分糖是可以分…...

Flink处理乱序的数据的最佳实践

目录 网络延迟和分布式系统 事件时间与处理时间的差异 事件时间和水位线(Watermark) 时间窗口(TimeWindow) 滚动窗口(Tumbling Window) 滑动窗口(Sliding Window) 会话窗口(Session Window) 自定义Watermark生成策略 设置允许延迟和侧输出 设置允许的最大延迟时间 使…...

Android OpenGL ES详解——模板Stencil

目录 一、概念 1、模板测试 2、模板缓冲 二、模板测试如何使用 1、开启和关闭模板测试 2、开启/禁止模板缓冲区写入 3、模板测试策略函数 4、更新模板缓冲 5、模板测试应用——物体轮廓 三、模板缓冲如何使用 1、创建模板缓冲 2、使用模板缓冲 3、模板缓冲应用——…...

vscode在cmake config中不知道怎么选一个工具包?select a kit

vscode在cmake config中不知道怎么选一个工具包&#xff0c;或者发现一直在用VS的工具包想换成自己的工具包。select a kit vscode在cmake config中不知道怎么选一个工具包&#xff0c;或者发现一直在用VS的工具包想换成自己的工具包。select a kit 1.在VSCode中 按ctrlshift…...

无人机之无线电监测设备技术篇

一、技术原理 无人机的无线电监测设备主要通过捕捉和分析无人机发出的无线电信号来实现对无人机的监测和定位。这些信号包括无人机的上行遥控信号、下行数据图传信号等。设备采用多种技术手段&#xff0c;如频谱分析、信号解调、定位算法等&#xff0c;对接收到的信号进行处理和…...

【系统架构设计师】预测试卷一:案例分析

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 试题一(共25分)【问题 1】(12分)【问题 2】(13分)试题二(共 25分)【问题 1】(12分)【问题 2】(7分)【问题 3】(6分)试题三(共25分)【问题 1】(9分)【问题 2】(16分)试题四(共25分)【问题 1】…...

一篇文章教会你I2C通信(软件I2C和硬件I2C)以读取MPU6050为例,附STM32代码示例

目录 一、I2C通信介绍&#xff1a; &#xff08;1&#xff09;基本概念&#xff1a; &#xff08;2&#xff09;特点&#xff1a; &#xff08;3&#xff09;工作原理&#xff1a; 二、I2C通信原理&#xff1a; &#xff08;1&#xff09;I2C 物理层&#xff1a; &…...

Python实现SPFA算法

目录 Python实现SPFA算法引言一、SPFA算法的理论基础1.1 最短路径问题1.2 SPFA算法的基本原理1.3 SPFA算法的复杂度 二、SPFA算法的Python实现2.1 基本实现2.2 案例一&#xff1a;使用SPFA算法进行城市交通最短路径计算2.2.1 实现代码 2.3 案例二&#xff1a;负权重边的处理2.3…...

MYSQL安装(ubuntu系统)

rpm -qa 查询安装软件包 ps axj 查询服务 卸载mysql&#xff08;万不得已&#xff09; ps axj | grep mysql 查看是否存在mysql服务 systemctl stop mysqld 关闭该服务 rpm -qa | grep mysql 查安装mysql安装包 rmp -qa | grep mysql | xargs (yum apt) -y remove进行批量…...

Cpp二叉搜索树的讲解与实现(21)

文章目录 前言一、二叉搜索树的概念定义特点 二、二叉树的实现基本框架查找插入删除当只有0 ~ 1个孩子的时候当有2个孩子的时候 三、二叉树的应用K模型KV模型 四、二叉树的性能分析总结 前言 这是全新的一个篇章呢&#xff0c;二叉搜索树是我们接下来学习set、map的前提 迈过它…...

微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern)

微服务设计模式 — 补偿事务模式&#xff08;Compensating Transaction Pattern&#xff09; 定义 在云计算和分布式系统中&#xff0c;管理跨多个微服务或组件的事务一致性是一项极具挑战性的任务&#xff0c;补偿事务模式Compensating Transaction Pattern&#xff09;是一种…...

20 实战:形状编码、运动补偿和纹理编码的实现(基于python)

在当今多媒体时代,视频处理与编码已经成为各个领域中不可或缺的一部分。无论是视频编辑、流媒体传输,还是计算机视觉应用,视频编码技术都扮演着关键角色。本文将详细解析一个基于Python的图形用户界面(GUI)视频编码器。通过对代码的逐行讲解、功能分析以及参数调节方法的探…...

区块链-C++挖矿软件XMRIG源码分析

C++挖矿软件源码分析 3rdpartybackendgrgon2Obfusheader.hmain 程序 xmrig.cppxmrig命名空间process类Entry::IdApp类CoreControllerbasetoolkernelinterfacesDonateStrategy.cppdonate.h/2/dmiCmake 跨平台的自动化构建系统CMakeLists.txt.cmake 13个引入算力哈希率 HashrateE…...

C语言指针的介绍

零.导言 在日常生活中&#xff0c;我们常常在外出时居住酒店&#xff0c;细心的你一定能发现酒店不同的房间上有着不同的门牌号&#xff0c;上面写着像308&#xff0c;512之类的数字。当你定了酒店之后&#xff0c;你就会拿到一个写有门牌号的钥匙&#xff0c;凭着钥匙就能进入…...

八大排序算法——堆排序

目录 前言 一、向上调整算法建堆 二、向下调整算法建堆 三、堆排序 前言 堆排序是基于堆结构的一种排序思想&#xff0c;因此要为一个乱序的数组进行排序的前提是数组必须要是一个堆&#xff0c;所以要先对数组进行建堆操作 一、向上调整算法建堆 时间复杂度&#xff1a;O…...

U盘文件不翼而飞?这些数据恢复工具帮你找回!

U盘因其便携性是我们日常工作和生活中不可或缺的工具。不过有时候它也会出点小状况。如果你U盘里的数据突然不见了&#xff0c;不要着急&#xff0c;可以先试试这几款数据恢复工具&#xff01; 福昕数据恢复 直达链接&#xff1a;www.pdf365.cn/foxit-restore/ 操作教程&…...

在Java中 try catch 会影响性能吗?

1、在Java中&#xff0c;异常处理确实会对性能产生影响&#xff0c;但在正常执行的代码路径中&#xff0c;即没有发生异常的情况下&#xff0c;try-catch块的性能影响是微不足道的 2、但是&#xff0c;如果出现异常被抛出时&#xff0c;Java虚拟机需要执行一些额外的操作来处理…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...