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

不同系统间数据交换要通过 api 不能直接数据库访问

image.png

很多大数据开发提供数据给外部系统直接给表结构,这是不好的方式。在不同系统间进行数据交换时,通过API(应用程序编程接口)而非直接访问数据库是现代系统集成的一种最佳实践。

目录

      • 为什么要通过API进行数据交换
      • 如何通过API进行数据交换
      • 实现步骤
      • 使用Flask构建RESTful API
        • 安装Flask
        • API代码示例
        • 启动API服务器
      • 使用Spring Boot构建RESTful API
        • 创建Spring Boot项目并添加依赖
        • 创建API控制器
        • 创建数据实体和仓库
        • 启动Spring Boot应用
      • 将大数据平台的数据提供给外部系统
        • 使用PySpark读取数据
        • 将PySpark数据集成到Flask API
      • 总结

为什么要通过API进行数据交换

image.png

  1. 安全性

    • 控制访问:API可以通过认证和授权机制来控制谁可以访问数据。
    • 隔离系统:通过API访问数据可以隔离不同系统,减少一个系统的漏洞或故障对其他系统的影响。
  2. 数据一致性

    • 统一接口:API提供了统一的数据访问接口,可以确保数据的一致性和完整性。
    • 减少重复:通过API避免了在多个地方实现相同的数据逻辑,从而减少了重复代码和潜在的错误。

image.png

  1. 维护性和扩展性

    • 模块化设计:API使得系统更加模块化,便于维护和扩展。
    • 易于升级:通过API可以更容易地进行系统的升级和更新,而不影响其他系统。
      image.png
  2. 日志和监控

    • 跟踪访问记录:API可以记录所有的请求和响应,便于监控和审计。
    • 性能监控:通过API可以更容易地监控系统性能,发现和解决瓶颈问题。
      image.png

如何通过API进行数据交换

image.png

  1. RESTful API

    • 定义资源:每个API端点代表一个资源,如用户、订单等。
    • 使用HTTP方法:GET、POST、PUT、DELETE等方法对应于读取、创建、更新、删除操作。
  2. SOAP API

    • 使用XML:SOAP(简单对象访问协议)使用XML格式来定义消息结构。
    • 更严格的标准:SOAP提供了更严格的协议和标准,适用于需要高安全性和事务处理的场景。
  3. GraphQL

    • 灵活查询:允许客户端指定需要的数据结构,减少数据传输量。
    • 单个端点:通过单个端点提供数据查询和操作,简化接口管理。
  4. 消息队列

    • 异步通信:使用消息队列(如RabbitMQ、Kafka)可以实现系统间的异步数据传输。
    • 解耦系统:通过消息队列可以解耦生产者和消费者,提升系统的扩展性和可靠性。

实现步骤

image.png

  1. 需求分析

    • 确定需要交换的数据和操作,设计API接口和数据模型。
  2. API设计

    • 选择合适的API风格(RESTful、SOAP、GraphQL等)。
    • 定义API端点、请求方法、参数和响应格式。
  3. 安全机制

    • 实现认证(如OAuth、JWT)和授权机制。
    • 确保数据传输的安全性(如HTTPS)。
  4. 开发和测试

    • 开发API,并进行单元测试和集成测试。
    • 使用工具(如Postman、Swagger)进行测试和文档编写。
  5. 部署和监控

    • 部署API服务,并设置日志和监控系统。
    • 定期检查和优化API性能和安全性。

通过API进行数据交换不仅提高了系统的安全性和维护性,还增强了系统的扩展能力和灵活性,是现代系统架构设计中的重要实践。

image.png

其实开发接口 也不难,以下是一些代码示例和步骤,展示如何使用不同技术栈实现API,并将大数据平台的数据提供给外部系统。

使用Flask构建RESTful API

安装Flask
pip install Flask
API代码示例
from flask import Flask, request, jsonify
import pandas as pd
import jsonapp = Flask(__name__)# 示例数据,实际情况中应从大数据平台读取数据
data = {'id': [1, 2, 3],'name': ['Alice', 'Bob', 'Charlie'],'score': [85, 90, 78]
}df = pd.DataFrame(data)@app.route('/api/data', methods=['GET'])
def get_data():result = df.to_dict(orient='records')return jsonify(result)@app.route('/api/data/<int:id>', methods=['GET'])
def get_data_by_id(id):result = df[df['id'] == id].to_dict(orient='records')if not result:return jsonify({'error': 'Data not found'}), 404return jsonify(result[0])@app.route('/api/data', methods=['POST'])
def add_data():new_data = request.jsondf.append(new_data, ignore_index=True)return jsonify({'message': 'Data added successfully'}), 201if __name__ == '__main__':app.run(debug=True)
启动API服务器
python app.py

使用Spring Boot构建RESTful API

创建Spring Boot项目并添加依赖

pom.xml文件中添加以下依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency>
</dependencies>
创建API控制器
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;
import java.util.Optional;@RestController
@RequestMapping("/api/data")
public class DataController {@Autowiredprivate DataRepository dataRepository;@GetMappingpublic List<Data> getAllData() {return dataRepository.findAll();}@GetMapping("/{id}")public Data getDataById(@PathVariable Long id) {Optional<Data> data = dataRepository.findById(id);if (data.isPresent()) {return data.get();} else {throw new ResourceNotFoundException("Data not found with id " + id);}}@PostMappingpublic Data addData(@RequestBody Data data) {return dataRepository.save(data);}
}
创建数据实体和仓库
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;@Entity
public class Data {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Long id;private String name;private int score;// getters and setters
}
import org.springframework.data.jpa.repository.JpaRepository;public interface DataRepository extends JpaRepository<Data, Long> {
}
启动Spring Boot应用
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

将大数据平台的数据提供给外部系统

假设数据存储在Hadoop HDFS中,我们可以使用PySpark读取数据并通过API提供给外部系统。

使用PySpark读取数据
from pyspark.sql import SparkSessionspark = SparkSession.builder \.appName("Data API") \.getOrCreate()# 读取HDFS中的数据
df = spark.read.csv("hdfs://path/to/data.csv", header=True, inferSchema=True)# 将数据转换为Pandas DataFrame以便使用Flask
pandas_df = df.toPandas()
将PySpark数据集成到Flask API
from flask import Flask, request, jsonify
import pandas as pd
import json
from pyspark.sql import SparkSessionapp = Flask(__name__)# 创建Spark会话
spark = SparkSession.builder \.appName("Data API") \.getOrCreate()# 读取HDFS中的数据
df = spark.read.csv("hdfs://path/to/data.csv", header=True, inferSchema=True)
pandas_df = df.toPandas()@app.route('/api/data', methods=['GET'])
def get_data():result = pandas_df.to_dict(orient='records')return jsonify(result)@app.route('/api/data/<int:id>', methods=['GET'])
def get_data_by_id(id):result = pandas_df[pandas_df['id'] == id].to_dict(orient='records')if not result:return jsonify({'error': 'Data not found'}), 404return jsonify(result[0])if __name__ == '__main__':app.run(debug=True)

总结

image.png

通过构建API,可以安全、有效地将大数据平台的数据提供给外部系统。无论是使用Flask还是Spring Boot,都可以实现RESTful API的构建。同时,结合大数据平台的读取能力(如Hadoop HDFS和PySpark),可以轻松实现数据的获取和提供。

相关文章:

不同系统间数据交换要通过 api 不能直接数据库访问

很多大数据开发提供数据给外部系统直接给表结构&#xff0c;这是不好的方式。在不同系统间进行数据交换时&#xff0c;通过API&#xff08;应用程序编程接口&#xff09;而非直接访问数据库是现代系统集成的一种最佳实践。 目录 为什么要通过API进行数据交换如何通过API进行数据…...

深度探索“目录名称无效“:原因、解决方案与最佳实践

目录名称无效&#xff1a;现象背后的秘密 在日常使用电脑或移动设备时&#xff0c;我们时常会遇到“目录名称无效”的错误提示&#xff0c;这一提示仿佛是一道无形的屏障&#xff0c;阻断了我们与重要数据的联系。从本质上讲&#xff0c;“目录名称无效”意味着系统无法识别或…...

open3d基础使用-简单易懂

Open3D是一个开源库&#xff0c;主要用于快速开发处理3D数据的软件。它提供了丰富的数据结构和算法&#xff0c;支持点云、网格和RGB-D图像等多种3D数据的处理。以下是对Open3D基础使用的详细归纳和说明&#xff1a; 一、安装Open3D Open3D可以通过Python的包管理器pip进行安…...

【前端】HTML+CSS复习记录【5】

文章目录 前言一、padding、margin、border&#xff08;边框边距&#xff09;二、样式优先级三、var&#xff08;使用 CSS 变量更改多个元素样式&#xff09;四、media quary&#xff08;媒体查询&#xff09;系列文章目录 前言 长时间未使用HTML编程&#xff0c;前端知识感觉…...

三分钟看懂SMD封装与COB封装的差异

全彩LED显示屏领域中&#xff0c;COB封装于SMD封装是比较常见的两种封装方式&#xff0c;SMD封装产品主要有常规小间距以及室内、户外型产品&#xff0c;COB封装产品主要集中在小间距以及微间距系列产品中&#xff0c;今天跟随COB显示屏厂家中品瑞一起快速看懂SMD封装与COB封装…...

深入理解策略梯度算法

策略梯度&#xff08;Policy Gradient&#xff09;算法是强化学习中的一种重要方法&#xff0c;通过优化策略以获得最大回报。本文将详细介绍策略梯度算法的基本原理&#xff0c;推导其数学公式&#xff0c;并提供具体的例子来指导其实现。 策略梯度算法的基本概念 在强化学习…...

Unicode 和 UTF-8 以及它们之间的关系

通俗易懂的 Unicode 和 UTF-8 解释 Unicode 是什么&#xff1f; 想象一下&#xff0c;我们有一个巨大的图书馆&#xff0c;这个图书馆里有各种各样的书&#xff0c;每本书都有一个唯一的编号。Unicode 就像是这个图书馆的目录系统&#xff0c;它给世界上所有的字符&#xff0…...

【C++】多态详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 一、多态概念 二、多态的定义及实现 1. 多态的构成条件 2. 虚函数 2.1 什么是虚函数 2.2 虚函数的重写 2.3 虚函数重写的两个…...

C#异常捕获

前言 在C#中&#xff0c;我们无法保证我们编写的程序没有一点bug&#xff0c;如果我们对于这些抛出异常的bug不进行任何的处理的话&#xff0c;那么我们的软件在抛出这些异常的时候就会崩溃&#xff0c;也就是软件闪退&#xff0c;并且这种闪退由于我们没有进行处理&#xff0…...

工业一体机根据软件应用需求灵活选配

在当今工业领域&#xff0c;数字化、智能化的发展趋势愈发明显&#xff0c;工业一体机作为关键的设备&#xff0c;其重要性日益凸显。而能够根据软件应用需求进行灵活选配的工业一体机&#xff0c;更是为企业提供了高效、定制化的解决方案。 一、工业一体机的全封闭无风扇散热功…...

centos7 mqtt服务mosquitto搭建记录

1、系统centos7.6&#xff0c;安装默认版本 yum install mosquitto 2、启动运行 systemctl start mosquitto 3、设置自启动 systemctl enable mosquitto 4、修改配置文件 vim /etc/mosquitto/mosquitto.conf 监听端口&#xff0c;默认为1883&#xff0c;需要修改删除前面…...

双阶段目标检测算法:精确与效率的博弈

双阶段目标检测算法&#xff1a;精确与效率的博弈 目标检测是计算机视觉领域的一个核心任务&#xff0c;它涉及在图像或视频中识别和定位多个对象。双阶段目标检测算法是一种特殊的目标检测方法&#xff0c;它通过两个阶段来提高检测的准确性。本文将详细介绍双阶段目标检测算…...

Python量化交易策略

策略详情 按照1分k线图&#xff1b;跳过9&#xff1a;30点1分k线图不计算 买入&#xff1b;监控市面的可转债&#xff1b;当某1分涨幅大于x涨幅&#xff0c;一直重复x次&#xff0c;选择买入&#xff0c;符合x设置的条件只选择成交额最大的可转债买入&#xff08;x要自定义&…...

为什么我感觉 C 语言在 Linux 下执行效率比 Windows 快得多?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;Windows的终端或者叫控制台…...

算法导论 总结索引 | 第四部分 第十六章:贪心算法

1、求解最优化问题的算法 通常需要经过一系列的步骤&#xff0c;在每个步骤都面临多种选择。对于许多最优化问题&#xff0c;使用动态规划算法求最优解有些杀鸡用牛刀了&#xff0c;可以使用更简单、更高效的算法 贪心算法&#xff08;greedy algorithm&#xff09;就是这样的算…...

用“文心一言”写的文章,看看AI写得怎么样?

​零售连锁店的“支付结算”业务设计 在数字化浪潮的推动下&#xff0c;连锁店零售支付结算的设计愈发重要。一个优秀的支付结算设计不仅能够提升用户体验&#xff0c;还能增强品牌竞争力&#xff0c;进而促进销售增长。 本文将围绕一个具体的连锁店零售支付结算案例&#xf…...

企业消费采购成本和员工体验如何实现“鱼和熊掌“的兼得?

有企业说企业消费采购成本和员工体验的关系好比是“鱼和熊掌”&#xff0c;无法兼得&#xff1f; 要想控制好成本就一定要加强管控&#xff0c;但是加强管控以后&#xff0c;就会很难让员工获得满意的体验度。如果不加以管控&#xff0c;员工自由度增加了&#xff0c;往往就很难…...

发表EI论文相当于SCI几区?

EI&#xff08;工程索引&#xff09;本身并不进行分区&#xff0c;它是一个收录工程领域高质量文献的数据库&#xff0c;与SCI&#xff08;科学引文索引&#xff09;的分区制度不同。然而&#xff0c;在非正式的学术评价中&#xff0c;有时人们会将EI与SCI的分区进行比较。 虽…...

STFT短时傅里叶变换MTLAB简析

代码&#xff1a; 解释&#xff1a; 如果信号x有Nx个时间样本&#xff0c;短时傅里叶变换的结果矩阵s有k列&#xff1b; k的计算方式如图所示&#xff0c;M是窗函数的长度&#xff0c;L是重叠长度。 此符号是向下取整符号。 短时傅里叶变换的结果矩阵s的行数与参数‘FFTLength’…...

海致科技实施实习生面试

一、面试内容 注&#xff1a;此次是电话面试 1.是XX先生吗 2.你是有考虑转实施的吗&#xff1f; 3.请讲一下你对项目部署实施的理解和掌握 4.用过数据库&#xff0c;会编写SQL语句吗&#xff1f; 5.讲一下SQL的常用关键字 6.了解SQL中的函数吗&#xff1f;谈谈函数 7.多…...

论文阅读之旋转目标检测ARC:《Adaptive Rotated Convolution for Rotated Object Detection》

论文link&#xff1a;link code&#xff1a;code ARC是一个改进的backbone&#xff0c;相比于ResNet&#xff0c;最后的几层有一些改变。 Introduction ARC自适应地旋转以调整每个输入的条件参数&#xff0c;其中旋转角度由路由函数以数据相关的方式预测。此外&#xff0c;还采…...

面向对象(Java)

构造方法只能在对象实例化的时候调用 this可以作为方法参数&#xff0c;表示调用方法的当前对象 this可以作为方法返回值&#xff0c;表示返回当前对象 封装 通过方法访问数据&#xff0c;隐藏类的实现细节 static&#xff1a;类对象共享&#xff0c;类加载时产生&#xff0c;…...

I/O多路复用

参考面试官&#xff1a;简单说一下阻塞IO、非阻塞IO、IO复用的区别 &#xff1f;_unix环境编程 阻塞io和非阻塞io-CSDN博客 同步阻塞(BIO) BIO 以流的方式处理数据 应用程序发起一个系统调用&#xff08;recvform&#xff09;&#xff0c;这个时候应用程序会一直阻塞下去&am…...

线性代数基础概念:向量空间

目录 线性代数基础概念&#xff1a;向量空间 1. 向量空间的定义 2. 向量空间的性质 3. 基底和维数 4. 子空间 5. 向量空间的例子 总结 线性代数基础概念&#xff1a;向量空间 向量空间是线性代数中最基本的概念之一&#xff0c;它为我们提供了一个抽象的框架&#xff0c…...

php 抓取淘宝商品评论数据 json

要抓取淘宝商品评论数据&#xff0c;你可以使用PHP的cURL库来发送HTTP请求并获取JSON格式的数据。 API接入流程&#xff1a;需要开放平台或者是封装接口注册账号&#xff0c;并申请相应的API使用权限&#xff0c;以获取必要的密钥和接口文档。获取接口使用权限&#xff1a;接入…...

Java 7新特性深度解析:提升效率与功能

文章目录 Java 7新特性深度解析&#xff1a;提升效率与功能一、Switch中添加对String类型的支持二、数字字面量的改进三、异常处理&#xff08;捕获多个异常&#xff09;四、增强泛型推断五、NIO2.0&#xff08;AIO&#xff09;新IO的支持六、SR292与InvokeDynamic七、Path接口…...

RHEL9找不到/var/log/dmesg日志文件问题

问题描述 在Rocky Linux 9 服务器上查看启动日志&#xff0c;发现没有/var/log/dmesg文件。 dmesg是什么&#xff1f; dmesg(diagnostic messages)用于打印kernel ring buffer的所有消息。 kernel会将开机信息存储在ring buffer中&#xff0c;如果开机时来不及查看启动信息&…...

是什么让以太坊从众多公链中脱颖而出

以太坊从众多公链中脱颖而出&#xff0c;成为区块链和加密货币领域的一个重要玩家&#xff0c;主要是由于以下几个关键因素&#xff1a; 智能合约&#xff1a; 以太坊是第一个广泛实施智能合约的区块链平台&#xff0c;智能合约允许在区块链上自动执行合同条款&#xff0c;无需…...

HarmonyOS--路由管理--组件导航 (Navigation)

文档中心 什么是组件导航 (Navigation) &#xff1f; 1、Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式 2、Navigation组件适用于模块内和跨模块的路由切换&#xff0c;一次开发&#xff0…...

【Linux 命令】文件比较 diff

diff 命令是 Unix 和类 Unix 系统&#xff08;如 Linux 和 macOS&#xff09;中用于比较文件内容差异的一个非常有用的命令行工具。它可以逐行比较两个文件的内容&#xff0c;并输出它们之间的差异。这些差异通常以行为单位显示&#xff0c;并且会标记出哪些行是唯一的、添加的…...

猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0

猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0 猫头虎是谁&#xff1f; 大家好&#xff0c;我是 猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评…...

你的硬盘知道的太多:你以为你的秘密真的被删除了吗?

某一天你收到了朋友发给你的一个秘密文件&#xff0c;在看完之后&#xff0c;为了不被别人发现&#xff0c;你决定将文件毁尸灭迹&#xff01; 你选中文件名称 / 右键 / 删除&#xff0c;好了&#xff0c;文件已经消失了。但你是懂电脑的&#xff0c;知道文件此时还在回收站里面…...

虚拟机的网络配置

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️ 每一步都向着梦想靠近&#xff0c;坚持就是胜利的序曲 一 …...

ONLYOFFICE8.1版本桌面编辑器简单测评

ONLYOFFICE官网链接&#xff1a;在线PDF查看器和转换器 | ONLYOFFICE ONLYOFFICE介绍&#xff1a;https://www.onlyoffice.com/zh/office-suite.aspx OnlyOffice 是一款免费且开源的 Office 协作办公套件&#xff0c;支持桌面端和移动端等多平台&#xff0c;由一家领先的 IT 公…...

PDF内存如何变小,PDF内存压缩,PDF内存变小怎么调整

在数字化时代&#xff0c;pdf已成为工作、学习和生活中不可或缺的文件格式。它以其跨平台兼容性和安全性受到广大用户的喜爱。然而&#xff0c;随着pdf文件中嵌入的图片、图形和文本内容的增多&#xff0c;文件大小往往会变得相当可观&#xff0c;给文件的传输和存储带来一定的…...

深⼊理解MySQL Innodb存储引擎的缓冲池、事务、索引底层工作原理,掌握 MySQL 主从同步,读写分离技术以及集群的搭建,具备分库分表,SQL调优经验

深入理解MySQL的InnoDB存储引擎是数据库管理员和开发人员的重要技能。以下是对InnoDB存储引擎的缓冲池、事务、索引以及主从同步、读写分离技术和集群搭建的详细原理介绍&#xff1a; ### InnoDB存储引擎 1. **缓冲池(Buffer Pool)**&#xff1a; - 缓冲池是InnoDB存储引擎…...

《HelloGitHub》第 99 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…...

mysql 将一个列按逗号分割为多列

在MySQL中&#xff0c;将一个列按逗号分割为多列通常需要使用字符串函数&#xff0c;如SUBSTRING_INDEX()&#xff0c;配合UNION ALL或CROSS JOIN等操作来实现。 假设有一个表my_table&#xff0c;它有一个列tags&#xff0c;其中存储了逗号分隔的标签值&#xff0c;如下所示&…...

Vue 3中 <script setup> 与生命周期钩子函数的详细解析

Vue 3中 <script setup> 与生命周期钩子函数的详细解析 Vue 3 引入了 <script setup> 语法糖&#xff0c;这是一种简化和集成组件逻辑的新方式。尽管 <script setup> 简化了组件的编写&#xff0c;但仍然可以利用 Vue 提供的生命周期钩子函数来管理组件的生…...

一篇文章入门主成分分析PCA

文章目录 基本概念事件随机变量独立同分布离散型随机变量伯努利分布&#xff08;两点分布&#xff09;二项分布几何分布泊松分布 连续型随机变量正态分布 期望方差标准化协方差相关系数线性组合特征值和特征向量特征值分解对称矩阵的特征值分解 齐次线性方程组单位向量基向量矩…...

Android系统为什么lmkd杀到adj 100就代表有低内存?

在Android系统中&#xff0c;lmkd&#xff08;Low Memory Killer Daemon&#xff0c;低内存终止守护进程&#xff09;负责监控系统的内存状态&#xff0c;并在内存压力较高时通过终止不必要的进程来释放内存&#xff0c;以维持系统的稳定运行。关于lmkd为何在杀到adj&#xff0…...

d嘤嘤不想求异或喵(牛客周赛49)

题意&#xff1a; 嘤嘤有两个整数 l,r&#xff0c;她想知道区间 [l,r] 所有整数的异或和是多少. 分析&#xff1a; 样例1只有一个数输出1 样例2 1^201^10113 样例3 1^2^301^10^1111^11000 #include<bits/stdc.h> using namespace std; typedef long long ll; ll f(l…...

java反射-动态调用方法

通过字符串动态创建对象&#xff0c;通过字符串动态使用对象方法 package com.hmdp.service.动态调用方法;import java.lang.reflect.Method;public class Main {public static void main(String[] args) throws Exception {String name "javax.swing.JFrame";Clas…...

ThreadLocal作用

ThreadLocal作用(线程本地存储) ThreadLocal&#xff0c;很多地方叫做线程本地变量&#xff0c;也有些地方叫做线程本地存储&#xff0c;ThreadLocal的作用是提供线程内的局部变量&#xff0c;这种变量在线程的生命周期内起作用&#xff0c;减少同一个线程内多个函数或者组件之…...

Python基础入门知识

目录 引言 简要介绍Python语言 为什么要学习Python Python的应用领域 Python安装和环境配置 Python的下载和安装(Windows, macOS, Linux) 配置Python环境变量 安装和使用IDE(如PyCharm, VS Code) Python基本语法 注释 变量和数据类型(数字,字符串,列表,元组,字典,…...

uniapp——据用户角色显示或隐藏部分功能权限。

v-if"user.state.agent_level!business || (user.state.agent_levelbusiness && item.value ! 3 && item.value ! 4)"...

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测 目录 JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BO-Transformer-LSTM多变量回归预测&#xff0c;贝叶斯优化Transformer结合LSTM长…...

软件开发环境-系统架构师(二十一)

1、对计算机评价的主要性能指标有时钟频率、&#xff08;&#xff09;、运算精度和内存容量等。 对数据库管理系统评价的主要性能指标有&#xff08;&#xff09;、数据库所允许索引数量和最大并发事务处理能力。 问题1 A丢包率 B端口吞吐量 C可移植性 D数据处理速率 问题…...

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数&#xff08;通常在十亿个以上&#xff09;、超强计算资源的机器学习模型&#xff0c;能够处理海量数据&#xff0c;完成各种复杂任务&#xff0c;如自然语言处理、图像识别等。计算机硬件性能不断提升&#xff0c;深度学习算法快速优化&…...

ctfshow-web入门-命令执行(web56、web57、web58)

目录 1、web56 2、web57 3、web58 1、web56 命令执行&#xff0c;需要严格的过滤 新增过滤数字&#xff0c;只能采用上一题临时文件上传的方法&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…...

实现桌面动态壁纸(二)

目录 前言 一、关于 WorkerW 工作区窗口 二、关于窗口关系 2.1 窗口以及窗口隶属关系 2.2 桌面管理层窗口组分简析 2.3 厘清两个概念的区别 2.4 关于设置父窗口 三、编写代码以供在 Vista 上实现 3.1 方法二&#xff1a;子类化并自绘窗口背景 四、初步分析桌面管理层…...

免杀笔记 ----> DLL注入

这段时间我们暂时没什么事情干的话我们就继续更新我们的免杀笔记力&#xff01;&#xff01;&#xff01; &#xff1a;今天我们讲DLL注入 目录 1.DLL注入 2.直接加载DLL&#xff1f; 3.远程线程注入 获取Handle 远程申请内存空间 将我们的CS的DLL加载入内存 创建远程线…...

入门机器视觉的正确打开方式——徒手撸一个python+opencv实现的机器视觉简易调试工具(下)

目录 1.引言2.框架思路3.图像处理流程化的实现3.1如何解析图像流程数据结构3.2 使用networkx网络图库3.3 python实现 4.结论5.python源码PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源 1.引言 在当今AI时代&#xff0c;关于视觉…...

利用YOLOv8识别自定义模型

一、背景介绍 最近项目需要识别自定义物品&#xff0c;于是学习利用YOLOv8算法&#xff0c;实现物品识别。由于物体类别不再常规模型中&#xff0c;因此需要自己训练相应的模型&#xff0c;特此记录模型训练的过程。 二、训练模型的步骤 1.拍照获取训练图片&#xff08;训练图…...

探索区块链:颠覆性技术的崛起

目录 一、引言 二、区块链技术概述 三、区块链应用场景 四、区块链面临的挑战 五、区块链的未来展望 六、结语 一、引言 在数字化浪潮的推动下&#xff0c;区块链技术以其独特的去中心化、透明性和不可篡改性等特性&#xff0c;正在逐步改变我们的生活。从金融领域到供应…...

【C++】 解决 C++ 语言报错:Memory Leak

文章目录 引言 内存泄漏&#xff08;Memory Leak&#xff09;是 C 编程中常见且严重的内存管理问题之一。当程序分配了内存而没有正确释放&#xff0c;导致内存无法被重新利用时&#xff0c;就会发生内存泄漏。这种错误会导致程序占用越来越多的内存&#xff0c;最终可能导致系…...

AI苦工卷向高学历

美国人马特拥有通信博士学位,他最近喜提一份自由职业:成为Scale AI公司的一员,在家训练AI模型。“通信博士”“训练AI模型”,马特是不是成了一名光荣的AI程序员?事实并非如此。马特的工作很无聊:他在Scale AI的系统中“接活”,以用户的角度浏览AI模型给用户的各种回复,判…...

新时代硬汉之争!全面对比解析深蓝G318与方程豹豹5

即便日常被困于钢筋混凝土的钢铁丛林,但谁又没有一颗向往诗和远方的心呢?尤其是随着新能源车的崛起,在户外带电,能让生活品质更上一个台阶。当然,诗和远方固然重要,日常的柴米油盐也同样重要,选车时,咱们在关注户外通过能力的同时,也得关注日常用车的体验。今天的对比…...

【Linux 网络编程】网络的基础知识详解!

文章目录 1. 计算机网络背景2. 认识 "协议"3. 协议分层 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; &#x1f34e;局域网&#xff08;LAN----Local Area Network&#xff09;: 计算机数量更多了, 通过交换机和路由器连接。 &#x1f34e; 广…...

python -【五】数据容器

数据容器 一、列表 列表的循环 name_list [张三, 李四, 王五] print(f类型是&#xff1a;{type(name_list)})# while 遍历列表 count 0 while count < len(name_list):print(fwhile 下标为[{count}] 的内容是[{name_list[count]}])count 1# for 循环 for name in name…...

【C++】模拟实现string类

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 一.了解项目功能 二.逐步实现项目功能模块及其逻辑详解 &#x1f38f;构建成员变量 &#x1f38f;实现string类默认成员函数 &#x1f4cc;构造函数 &#x1f4cc;析构函数…...

Hono 框架使用经验谈

Hono&#x1f525;是一个小型、快速并开源的 Serverless Web 框架&#xff0c;用 TypeScript 写就。它适用于任何JavaScript运行时&#xff1a;Cloudflare Workers&#xff0c;Fastly ComputeEdge&#xff0c;Deno&#xff0c;Bun&#xff0c;Vercel&#xff0c;Netlify&#x…...