- IIS部署ASP.Net Core 遇坑 502.记录
DemonTutor
IIS部署ASP.NetCore502.5错误和解决在Win2008的机器上部署ASP.NetCore程序,老是提示502.5错误。已经安装了MicrosoftVisualC++2015Redistributable.NETCoreWindowsServerHostingbundle对应版本的.NetCoreSDK,但程序就是跑不起来。出错截图直接使用dotnet命令程序是可以正常运行的,说明环境
- 详细介绍一下OpenAI的API使用方法
alankuo
人工智能
以下是详细的OpenAIAPI使用方法:获取API密钥访问OpenAI官方网站(https://platform.openai.com/)并注册账号.登录后,点击右上角的个人资料名称或图标,选择“ViewAPIKeys”.在API密钥页面,点击“Createnewsecretkey”来创建新的API密钥,将其妥善保存,因为此密钥仅在生成时显示一次.安装OpenAI库在命令行中使用pipinstal
- C#与Web开发:ASP.NET Core MVC框架
墨瑾轩
一起学学C#【一】c#前端asp.net
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣引言嗨,小伙伴们!今天我们要聊的是一个超级有趣的主题——ASP.NETCoreMVC。如果你对C#还不熟悉,那么可以把它想象成一种既强大又灵活的语言,适合用来编写各种各样的应用程序。而ASP.NETCoreMVC呢?它是一种基于C#的现代Web开发框架,能够帮
- 【Git】报错:git config --global http.sslBackend “openssl“
问题解决报错:gitconfig--globalhttp.sslBackend“openssl”解决方法:gitconfig--globalhttp.sslBackend"openssl"之后再push即可正常提交。原因分析系统环境不支持OpenSSL后端Git在某些平台(如Linux)默认使用Gnutls而非OpenSSL,强制配置为OpenSSL会触发报错unsupportedsslbacke
- ASP .NET Core 8实现实时Web功能
发粪的屎壳郎
ASP.NETCore8后端服务框架搭建asp.netcore8signalr
ASP.NETCoreSignalR是一个开放源代码库,可用于简化向应用添加实时Web功能。实时Web功能使服务器端代码能够将内容推送到客户端。以下是ASP.NETCoreSignalR的一些主要功能:自动处理连接管理同时向所有连接的客户端发送消息。例如聊天室向特定客户端或客户端组发送消息SignalR支持以下用于处理实时通信的技术(按正常回退的顺序):WebSocketServer-Sent事件
- vue 不同版本下v-model的底层实现
下面把「底层实现」和「差异」拆开讲,先给代码级流程,再给一个对照表,面试或源码阅读都能直接用。一、底层实现(编译→运行时的两条链路)Vue2•编译阶段:模板编译器遇到v-model,根据元素类型生成不同的AST指令对象。•运行时指令:src/platforms/web/compiler/directives/model.js里的model()函数把指令对象转成原生标签addProp(el,'val
- VUE解决Error: error:0308010C:digital envelope routines::unsupported的四种解决方案
问题描述:报错:Error:error:0308010C:digitalenveloperoutines::unsupported报错原因:主要是因为nodeJsV17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,nodeJsv17之前版本没影响,但V17和之后版本会出现这个错误。我的node版本是v18+报错详细信息:rror:error:0308010C:digitale
- C++ Primer(第5版)- Chapter 7. Classes -003
skylijf
C++开发语言笔记c++
7.1.1.DesigningtheSales_dataClassUltimately,wewantSales_datatosupportthesamesetofoperationsastheSales_itemclass.TheSales_itemclasshadonememberfunction(§1.5.2,p.23),namedisbn,andsupportedthe+,=,+=,>ope
- 摄像驱动会接触到的单词(想起来就更新)3
空与实的极致
嵌入式硬件经验分享计算机视觉视觉检测
工作单词delivers交付;传递assignment分配;任务;指派firmware固件stack栈integrate整合superspeed超高速embedded嵌入式development研发、开发;发展kit装备;配套元件;成套工具platforms平台、站台device设备、物品、器械peripheral外围设备;外围的;次要的access通道;入口;机会interface接口;界面se
- Mamba项目用户指南:高效管理Python环境的利器
左松钦Travis
Mamba项目用户指南:高效管理Python环境的利器mambaTheFastCross-PlatformPackageManager项目地址:https://gitcode.com/gh_mirrors/mam/mamba什么是Mamba?Mamba是一个基于Conda的CLI工具,专为高效管理Python环境而设计。它继承了Conda的所有优点,同时在性能上进行了显著优化,特别是在解决依赖关系
- Cool Pi CM5-LAPTOP Linux Quick Start Guide
george-coolpi
linux运维服务器开源arm开发AI编程
MachineIntroductionCOOLPICM5open-sourcenotebookisaproductthatcombineshighperformance,portability,andopen-sourcespirit.Itnotonlymeetsthebasiccomputingneedsofusers,butalsoprovidesanidealplatformforthose
- 【MySQL数据库】解决ONLY_FULL_GROUP_BY模式异常
大猫和小黄
数据库数据库mysql
错误报告:表达式#38在SELECT列表中未包含在GROUPBY子句中,并且包含了非聚合列'platform.oai.score',此列并非在GROUPBY子句中的列的功能性依赖;这与sql_mode设置为only_full_group_by不兼容。错误起因:在MySQL数据库版本5.7及以上版本中,默认激活了ONLY_FULL_GROUP_BYSQL模式。在此模式下,执行GROUPBY操作时,若
- 《从依赖纠缠到接口协作:ASP.NET Core注入式开发指南》
后端
在C#的ASP.NETCore开发中,依赖注入绝非简单的技术技巧,而是重构代码关系的底层逻辑。它像一套隐形的神经网络,让程序模块摆脱硬编码的束缚,在运行时实现动态连接,从而为系统注入可测试、可进化的核心生命力。理解其深层价值,需要穿透"服务注册与获取"的表层操作,触及它对软件设计哲学的重塑。依赖注入的本质,是对"依赖关系"的去中心化治理。传统开发中,模块间的依赖如同藤蔓缠绕的树木,一个组件直接创建
- 让C#程序在linux环境运行
今晚花一些时间,总结net程序如何在linux环境运行的一些技术路线。1、采用.NetCore框架NETCore使用了.NETCoreRuntime,它可以在Windows、Linux和macOS等多个操作系统上运行。可以采用VisualStudio生成Linux版本的dll。在Linux系统中,需要安装dotnet的运行环境(sudoyuminstalldotnet-sdk-2.1)。最后通过d
- Spring事务管理深度解析:原理、实践与陷阱
JouJz
javaspring
Spring事务管理深度解析:原理、实践与陷阱一、事务基础概念ACID原则原子性(Atomicity):事务内的操作要么全部成功,要么全部回滚一致性(Consistency):事务前后数据库状态保持一致隔离性(Isolation):并发事务间相互隔离持久性(Durability):事务提交后数据永久存储二、Spring事务核心接口publicinterfacePlatformTransaction
- Flutter 与 Android 的互通几种方式
小李飞飞砖
flutterandroid
Flutter与Android的互通主要通过以下几种方式实现,每种方式适用于不同的场景:1.平台通道(PlatformChannels)Flutter与原生Android代码通信的核心方式,支持双向调用。类型:MethodChannel:双向方法调用(最常用)EventChannel:用于原生向Flutter发送事件流(如传感器数据)BasicMessageChannel:简单的消息传递(较少使用
- uniapp 定位 android ios
织_网
iosandroiduni-app定位
uniapp定位androidios详细地址://判断手机是否开启定位功能checkOpenGPSService(){letsystem=uni.getSystemInfoSync();//获取系统信息//安卓androidif(system.platform==='android'){//判断平台varcontext=plus.android.importClass('android.conte
- uniapp Android&iOS 定位权限检查
定位权限检查//检查定位权限状态exportconstcheckPermission=()=>{constplatform=uni.getSystemInfoSync().platform;console.log('platform',platform)//#ifdefAPP-PLUSif(platform==='android'){//AndroidreturncheckAndroidPermi
- 创建 TransactionStatus
悟能不能悟
log4jjava开发语言
在Spring框架中,TransactionStatus是一个接口,通常由事务管理器(如PlatformTransactionManager)在开启事务时自动创建,而不是由开发者直接实例化。如果你需要在代码中操作事务状态,应通过以下标准方式:正确获取TransactionStatus的步骤:注入事务管理器在SpringBean中注入PlatformTransactionManager(如DataS
- 【.NET】2024年ASP.NET Core开发者技能图谱:从基础到进阶的全景指南
JosieBook
#Java全栈.netasp.net后端
前言在.NET生态快速发展的今天,ASP.NETCore已成为构建高性能、跨平台Web应用的首选框架。无论是初入职场的开发者,还是希望技术升级的资深工程师,清晰的技能体系都是持续成长的核心。本文基于2024年最新ASP.NETCore开发者技能图谱,带您系统梳理从基础到架构师的能力框架,助您在技术浪潮中找准方向。大类细分项具体内容ASP.NETCoreBasics(ASP.NETCore基础)C#
- CKEditor中粘贴复杂公式的最佳实践是什么?
M_Snow
umeditor粘贴wordueditor粘贴wordueditor复制wordueditor上传word图片ueditor导入wordueditor导入pdfueditor导入ppt
要求:开源,免费,技术支持编辑器:ckeditor前端:vue2,vue3.vue-cli后端:asp,java,jsp,springboot,php,asp.net,.netcore功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,Ubuntu,CentO
- FastAPI 与 OpenIddict 的微服务鉴权整合方案
NetX行者
pythonfastapi微服务架构开源python
架构概述基于微服务的身份认证架构采用OAuth2.0/OpenIDConnect协议,OpenIddict作为认证服务器,FastAPI作为资源服务器。系统包含三个核心组件:认证服务、API网关和业务微服务。OpenIddict负责颁发令牌,FastAPI通过JWT验证访问权限。技术栈选型认证服务器:OpenIddict4.8(基于ASP.NETCore)资源服务器:FastAPI0.95+(Py
- React Native 一些API详解
Misha韩
ReactNativereactnativereact.js
一、Platform获取平台属性//获取平台console.log(Platform.OS)//获取版本console.log(Platform.Version)//{"Brand":"google","Fingerprint":"google/sdk_gphone64_x86_64/emu64xa:16/BP22.250325.006/13344233:user/release-keys","M
- 云原生--微服务、CICD、SaaS、PaaS、IaaS
青秋.
云原生docker云原生微服务kubernetesserverlessservice_meshci/cd
往期推荐浅学React和JSX-CSDN博客一文搞懂大数据流式计算引擎Flink【万字详解,史上最全】-CSDN博客一文入门大数据准流式计算引擎Spark【万字详解,全网最新】_大数据spark-CSDN博客目录1.云原生概念和特点2.常见云模式3.云对外提供服务的架构模式3.1IaaS(Infrastructure-as-a-Service)3.2PaaS(Platform-as-a-Servi
- okhttp3对Android5.0以下版本不兼容问题
m0_37735448
Android
okhttp3对Android5.0以下版本不兼容问题问题描述Android5.0以下版本在使用okhttp3发送请求的时候会报如下错误ExceptionLjava/lang/IllegalStateException;thrownwhileinitializingLokhttp3/internal/platform/Platform;原因调查这是因为okhttp3支持的最低Android版本为5
- ubuntu安装搜狗输入法后闪烁
wuzuyu365
ubuntu
在/etc/profile里面添加一行exportQT_QPA_PLATFORM=xcb就好了,重启正常使用。
- Java手动打印执行过的sql
GoodStudyAndDayDayUp
javasql开发语言
1.拦截器packagecom.xxx.platform.common.interceptor;importcom.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;importcom.xxx.platform.common.aop.OLAPQuery;importcom.xxx.platform.constant
- 低代码平台的优势与挑战:现代开发的革新之路
BPM_宏天低代码
低代码
在数字化转型的浪潮中,低代码平台(Low-CodePlatforms)成为了开发者和企业的重要工具。低代码平台通过可视化界面和拖拽式功能,简化了应用程序的开发过程,使得即使是没有编程背景的用户也能够构建功能丰富的应用。然而,低代码平台的兴起不仅带来了巨大的便利,也伴随着一系列挑战。本文将探讨低代码平台的优势与挑战,帮助开发者和企业更好地理解并利用这一技术。1.低代码平台的优势1.1提高开发效率低代
- 低代码平台的性能测试实践与挑战
测试者家园
智能化测试性能测试人工智能低代码智能化测试人工智能性能测试软件开发和测试工程策略软件测试
一、引言近年来,低代码平台(Low-CodePlatform)正在快速改变企业软件开发方式。Gartner预测,到2025年,超过70%的应用开发将基于低代码或无代码技术。通过“拖拉拽建模+图形化逻辑+一键发布”,企业大幅缩短了从需求到交付的周期,实现了真正的“业务人员可编程”。但与此同时,一个被忽视的问题悄然浮现:低代码虽“低门槛”,但不等于“低复杂性”;表面简洁的背后,隐藏着深不可测的运行时系
- 前端Js框架汇总
是小颜颜呀
前端前端框架技术
前端Js框架汇总概述:有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快。看着Java、Js、Swift在各领域心花路放,也是煞是羡慕。寻了寻.net的消息,也是振奋人心,.netcore1,mono,xamarin等等,但大多都还在狂吼的阶段。其实一直以来对技术的理解是技术服务于业务和产品,产品又在不同程度的推进着技术的演进。Web、无线、物联网、VR、PC从不同方向
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f