FRP内网穿透搭建教程(2025最新版)
本文是基于v0.61.2版本的FRP服务搭建流程,包含服务端与客户端配置、防火墙设置、管理面板使用等核心内容。 一、本文环境说明1、一台Linux公网主机。2、一台Mac内网主机。需要开启ssh服务,在设置->通用->共享->远程连接设置中开启。 二、frps服务器搭建1.下载frps1234# 根据CPU架构选择amd64或arm64wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz# 解压tar -zxvf frp_0.62.1_linux_amd64.tar.gz 2.配置frps1234# 进入解压目录cd frp_0.62.1_linux_amd64# 修改配置文件vi frps.toml 复制配置文件内容: 123456789101112# 绑定端口,端口需要在服务器安全组中开放,如果有安装iptables或ufw等防火墙,也必须开放bindPort = <bind_port>#...
智能合约开发
一、环境准备本教程基于Mac电脑,这里进行简单说明:Ganache是本地区块链模拟器。Truffle是开发框架,帮助编译、部署和测试合约。Solidity是智能合约的编程语言。 1. 安装Node.js1brew install node 2. 安装Ganache1npm install -g truffle 3. 安装Truffle1npm install -g ganache 4. 安装Solidity1npm install -g solc 二、创建智能合约1234# 1. 创建项目目录mkdir my-contract && cd my-contract2. 初始化Truffle项目truffle init 目录结构说明: 1234├── contracts # Solidity合约目录├── migrations # 部署脚本目录├── test # 测试用例目录└── truffle-config.js # 配置文件 三、创建智能合约在contracts 目录下创建...
Spring Security+JWT搭建登录系统
本文介绍如何使用Spring Security和JWT构建安全的登录认证系统: Spring Security核心概念 JWT原理及结构 项目搭建步骤 安全配置类实现 JWT工具类开发 认证过滤器实现 完整示例代码 1. 添加依赖123456789<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency><dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>0.11.5</version></dependency> 2....
JetpackCompose自定义注解
注解在Compose中的作用Jetpack Compose中注解主要用于: 标记可组合函数 提供编译时检查 生成代码 优化重组性能 常用内置注解 @Composable - 标记可组合函数 @Preview - 标记可预览的组合函数 @Stable - 表示类型在组合期间是稳定的 自定义注解实现1. 定义注解123@Retention(AnnotationRetention.RUNTIME)@Target(AnnotationTarget.FUNCTION)annotation class LogComposable 2. 注解处理器123456789101112class LogComposableProcessor : AbstractProcessor() { override fun process( annotations: MutableSet<out TypeElement>, roundEnv: RoundEnvironment ): Boolean { ...
Spring boot集成Activiti的详细步骤和示例代码
本文详细介绍如何在Spring Boot项目中集成Activiti工作流引擎,包括: 添加Maven依赖 配置数据源和Activiti 创建流程定义 部署流程 启动流程实例 任务处理 完整示例代码 1. 添加Maven依赖12345<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>7.1.0.M6</version></dependency> 2. 配置数据源和Activiti12345678910spring: datasource: url: jdbc:mysql://localhost:3306/activiti username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver ...
阿里ARoute框架的使用详解
什么是ARoute阿里ARoute是阿里巴巴开源的一款Android路由框架,用于解决组件化开发中的页面跳转问题。 核心功能 页面路由:支持Activity、Fragment的路由跳转 服务发现:通过接口查找服务实现 拦截器机制:支持全局和局部拦截 自动注入:支持参数自动注入 基本使用1. 添加依赖12implementation 'com.alibaba:arouter-api:1.5.2'annotationProcessor 'com.alibaba:arouter-compiler:1.5.2' 2. 初始化12345if (isDebug()) { ARouter.openLog(); ARouter.openDebug();}ARouter.init(application); 3. 页面配置1234@Route(path = "/test/activity")public class TestActivity extends AppCompatActivity...
Vue Component动态组件使用
Vue动态组件(component)全面解析Vue的<component>元素是一个特殊的”元组件”,用于动态渲染组件。 基本用法1<component :is="currentComponent"></component> is属性决定当前渲染哪个组件,可以是: 已注册的组件名(字符串) 组件选项对象 异步组件函数 属性绑定动态组件可以像普通组件一样绑定属性: 123456<component :is="currentComponent" :title="pageTitle" :content="pageContent" :disabled="isDisabled"></component> 事件处理动态组件可以监听和触发事件: 12345<component :is="currentComponent" @click="handleClick" ...
如何在Vue模版中递归创建元素
递归组件是Vue中一个强大的特性,允许组件在其模板中调用自身。这在处理树形结构数据时特别有用,比如文件目录、评论树等。 基本实现方式1.给组件设置name属性 1234export default { name: 'RecursiveComponent', // ...} 2.在模板中调用自身 123456<template> <div> <!-- 其他内容 --> <recursive-component v-if="hasChildren" :data="childData"/> </div></template> 注意事项 必须设置终止条件,通常通过v-if控制 递归层级不宜过深,可能影响性能 可以通过provide/inject跨层级传递数据 实际应用示例12345678910111213141516// 树形菜单组件export default { name:...
如何在SwiftUI中使用UIKit
前言SwiftUI是Apple推出的声明式UI框架,但在某些场景下我们仍需要使用UIKit组件。本文将介绍如何在SwiftUI中集成和使用UIKit视图。 使用UIViewRepresentable通过UIViewRepresentable协议可以将UIKit视图包装为SwiftUI视图: 123456789struct MyTextView: UIViewRepresentable { func makeUIView(context: Context) -> UITextView { UITextView() } func updateUIView(_ uiView: UITextView, context: Context) { uiView.text = "Hello from UIKit" ...
模型训练之分布式训练
什么是分布式训练分布式训练是指利用多台机器/多个GPU协同训练神经网络模型的技术,主要解决: 单机显存不足的问题 训练速度慢的问题 超大规模模型训练需求 核心概念数据并行(Data Parallelism) 每张GPU保存完整的模型副本 将训练数据分片分配到不同GPU 定期同步梯度(如通过AllReduce) 模型并行(Model Parallelism) 将模型按层或模块拆分到不同设备 适合超大模型(如GPT-3) 实现复杂但内存效率高 主流实现方式1. 参数服务器(Parameter Server) 中心化的参数更新方式 Worker计算梯度,Server聚合更新 典型框架:TensorFlow PS 2. AllReduce架构 去中心化的Ring-AllReduce 带宽优化,适合GPU集群 典型框架:PyTorch DDP, Horovod PyTorch分布式示例1234567891011121314151617#...