题目:34.在排序数组中查找元素的第一个和最后一个位置思路:二分查找,但需注意数组为空的情况。C++版本:classSolution{public:vectorsearchRange(vector&nums,inttarget){vectorv={-1,-1};intn=nums.size();if(n==0)returnv;intl=0,r=n-1;while(l
解决MybatisPlus updateById更新数据时将没传的数据也更新成了null
善我
后端java
首先,MybatisPlus在调用自带的更新接口updateById时,如果没加任何配置,默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段,只会更新设置了不为null的值。如果发现没传的也更新成null了的话,可以看看问题是否出在以下几个方面。可能原因1、后端定义的字段类型是否为包装类型?比如应该定义成Integer,结果你定义的是int,那
运维Tips | Ubuntu 24.04 安装配置 samba 文件共享
全栈工程师修炼指南
企业IT运维实践运维ubuntulinux服务器
[知识是人生的灯塔,只有不断学习,才能照亮前行的道路]Ubuntu24.04安装配置samba文件共享描述:我们将Ubuntu24.04作为机器学习的工作站,往往需要将Ubuntu24.04中的数据或者代码共享给我们其他使用Windows系统的小伙伴,此时我们可以使用SAMBA,开辟出一个文件共享目录供大家进行数据交换使用。SAMBA是什么?在Linux中,SAMBA是一个开源的软件套件,它提供了
Python weakref --- 弱引用详解
tekin
Python高阶工坊Python编程秘籍库pythonweakref弱引用
Pythonweakref—弱引用详解在Python中,内存管理是一个重要的话题。weakref模块提供了弱引用的功能,它允许我们在不增加对象引用计数的情况下引用对象,从而避免影响对象的垃圾回收机制。本教程将依据Python官方文档,详细介绍weakref模块的使用,通过图文并茂的方式帮助理解,对相关联知识点进行扩展深化,用表格对比相近问题,包括与其他引用类型的区别、实际项目应用示例以及类似模块介
AI在项目中的应用
酒江
人工智能
AI大模型(如GPT-4、BERT、T5等)在各类项目中有广泛的应用,可以极大地提高项目效率、优化流程,并解决许多传统方法难以应对的问题。以下是AI大模型在不同类型项目中的一些具体应用:1.自然语言处理(NLP)文本生成和摘要:AI大模型可以生成高质量的文本内容,自动撰写文章、新闻报道、博客或技术文档,甚至可以进行文献摘要,帮助内容创作者提高效率。情感分析:在客户服务、社交媒体监控或市场研究项目中
LLaMA-Factory 微调训练
zsh_abc
llamadocker深度学习人工智能pythonlinux
LLaMA-Factory微调训练该框架功能,标注-微调-导出-合并-部署,一整条流程都有,而且训练时消耗的gpu算力也会小一些一,安装(推荐在linux中训练,win可以用wsl+docker)gitclonehttps://github.com/hiyouga/LLaMA-Factory.gitcdLLaMA-Factory#根据cuda版本选择安装pytoch版本pip3installtor
如何在论文中添加参考文献引用(以Word2016为例)
韦_恩
windows日常使用总结officeword
相信很多同学在写论文时候的引用是手动自己加的吧?这样不是不行,就是万一某个引用变了就会导致牵一发动全身的问题,所以利用word中提供给你的方式就可以灵活动态添加引用,因为这个东西并不是天天用,所以很容易忘,今天来总结一下。目录1.自定义编号2.添加引用编号3.调整编号与内容之间的空隙4.在文中添加引用5.引用顺序变更后自动调整6.总结1.自定义编号定义新编号格式。在编号格式中加上文献引用的“[]”
centos7安装时采用的默认分区(比如:/dev/sda3的对应挂载点是/),如何对系统扩容?
1 Byte
Linux运维centosLinux系统扩容方案
非LVM分区扩容方案若/dev/sda3是非LVM分区且存储重要数据,可通过直接扩展分区容量+调整文件系统实现扩容,无需重建LVM或格式化分区。以下是具体步骤:1.扩展物理磁盘(虚拟机场景)关闭虚拟机→在VMware/VirtualBox中扩展磁盘容量(如从20G扩容至30G)。重启系统→确保虚拟机识别到新磁盘空间。2.扩展分区容量(无需创建新分区)安装分区扩容工
let const var 底层区域别,es6还有AO 对象和GO对象吗
新茶十九
#学习javascriptes6前端ecmascript
在JavaScript中,var、let、const的底层行为差异与作用域规则和变量存储机制密切相关。ES6引入了块级作用域和词法环境(LexicalEnvironment),改变了原有的AO和GO的实现方式,但核心逻辑仍然保留。以下是详细解释:一、var、let、const`的底层区别特性varletconst作用域函数作用域或全局作用域块级作用域块级作用域变量提升提升并初始化为undefine
Android BaseActivity的设计(一)
小翘学Framework
Android从入门到跑路androidBaseActivityMVC
Android开发中BaseActivity在程序设计对于项目的架构重要性不言而喻,一个好的BaseActivity设计可以让项目的Activity代码看起来更加简洁且易编写,同时BaseActivity也是MVC,MVP和MVVM架构体现。BaseActivity使用场景1多个子类有公有的方法,并且逻辑基本相同时。2重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实
MyBatis SqlSession 是如何创建的? 它与 SqlSessionFactory 有什么关系?
冰糖心书房
Mybatis源码系列2025Java面试系列mybatis
SqlSession是MyBatis中与数据库交互的核心接口,它提供了执行SQL语句、管理事务、获取Mapper接口代理对象等关键功能。SqlSession实例不是直接通过new关键字创建的,而是通过SqlSessionFactory工厂来创建的。SqlSessionFactory负责创建SqlSession实例,并管理SqlSession的生命周期。1.SqlSession的创建方式:通过Sql
word中老是有一个空白页删不掉
白日梦的尽头
word问题word
1、首先第一种:最后一页空白页删除方法如果空白页是出现在最后一页的话,一般的删除方法是可行的,我们可以直接按Backspace或者Delete直接删除2、缩小行距如果空白页只有一行,而且还删不掉,我们可以在这一行点击鼠标右键,在【段落】中对【行距】进行设置,我们把行距设置为【固定值】【1磅】,这样就空白页就没了3、批量删除如果一个文档里出现了很多空白页,那么我们可以用替换功能来把它们批量删除,就不
超全!600 个通用大模型Prompt指令
AI Echoes
人工智能
超全!600个ChatGPT通用Prompt指令:1.电子邮件营销提示“我需要一种[电子邮件类型],让我的[理想客户角色]对我的[产品/服务]产生[情感],并说服他们以紧迫感采取[期望的行动]。”“我正在寻找一种[电子邮件类型],它可以直接说明我的[理想客户角色]的需求和痛点,并以紧迫感和强烈的提议说服他们采取[期望的行动]。”“我需要一封[电子邮件类型],向[理想的客户角色]展示我的[产品/服务
【宇宙回响】从Canvas到MySQL:飞机大战的全栈交响曲【附演示视频与源码】
果冻kk
小游戏开发mysql音视频数据库前端html5javaspringboot
这是星际大战系列的第三篇送福利文章,感谢一路以来支持和关注这个项目的每一位朋友!文章力求严谨,但难免有疏漏之处,欢迎各位朋友指出,让我们一起在交流中进步。项目代码、文档和相关资源都可以免费获取,希望能帮助到更多对游戏开发感兴趣的朋友。如果您有任何想法、建议或疑问,都欢迎在评论区留言或通过私信与我交流。您的每一个反馈都是项目进步的动力!文章目录【福利分享】星际大战飞机大战升级版-前后端完整版本前言演
一文读懂四路CAN转以太网
天津三格电子
网络协议
在工业自动化与物联网蓬勃发展的当下,实现CAN总线设备与以太网之间的高效通信至关重要。四路CAN转以太网产品,作为一款专业的工业通信网关,致力于打破CAN总线与以太网之间的通信壁垒,为工业数据的互联互通提供可靠解决方案。一、产品概述四路CAN转以太网产品是一款集CAN总线数据采集、处理与以太网通信功能于一体的工业级智能设备。其核心功能是将工业现场中采用CAN总线通信的设备(如传感器、控制器、执行器
一文读懂 EtherNET/IP 转 Modbus RTU 网关
天津三格电子
tcp/ip网络网络协议
在工业自动化快速发展的进程中,不同通信协议设备间的互联互通需求日益迫切。EtherNET/IP与ModbusRTU作为工业领域广泛应用的通信协议,各自在不同层面发挥着关键作用。EtherNET/IP凭借其基于工业以太网的高速、高效数据传输能力,在工厂自动化、智能工厂等大型系统中广泛用于连接各类先进设备;ModbusRTU则以其简单可靠、易于实现的特性,在工业现场层被众多传感器、执行器等设备采用。然
【ES6】04-对象 + 类 + 模板字符串 + 解构 + 字符串
beibeibeiooo
ES6es6前端javascript
本文介绍对象+类+解构赋值+字符串的操作和方法。目录1.对象1.1创建对象1.2添加属性1.3删除1.4判断是否存在1.5属性名数量1.6for...in遍历1.7forEach遍历1.8清空对象2.类2.1创建对象和模板字符串2.2私有属性值2.3继承extends3.解构3.1数组解构3.2对象解构4.字符串4.1长度&转大小写4.2索引字符&转数组&转int4.3替换&去除两侧&判断4.4返
10、C++ 存储类 - [C++系列教程 - 史上最全]
星星学霸
C++系列教程c++开发语言
autoregisterstaticexternmutableauto存储类auto存储类是所有局部变量默认的存储类。{intmount;autointmonth;}上面的实例定义了两个带有相同存储类的变量,auto只能用在函数内,即auto只能修饰局部变量。register存储类register存储类用于定义存储在寄存器中而不是RAM中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一
PLM项目管理软件的核心价值与企业应用场景
程序员
PLM(ProductLifecycleManagement)项目管理软件作为企业数字化转型进程中的关键工具,正发挥着越来越重要的作用。它围绕产品从概念诞生到退役的全生命周期,整合了各种数据、流程和资源,为企业提供了一个统一的管理平台,助力企业提升效率、降低成本、增强创新能力。PLM项目管理软件的核心价值PLM项目管理软件的核心价值首先体现在数据的集中管理与共享上。在传统的企业运作模式下,产品相关
「AI 加持的高效架构」高并发场景下的服务器成本优化
摘要在高并发场景下,服务器资源消耗巨大,导致运维成本飙升。本篇文章将探讨限流、缓存、队列等技术手段,并结合AI技术优化服务器负载,降低计算成本。通过具体案例分析,提供更经济高效的高并发架构解决方案。引言高并发的挑战随着互联网业务增长,系统需要承受高并发请求,面临以下挑战:瞬时流量激增:秒杀、抢购、热门活动带来的超高流量。资源消耗巨大:数据库、服务器、网络带宽压力大,成本攀升。响应速度下降:延迟增加
RAID10怎么创建?RAID10创建详细步骤
raid服务器运维
RAID10创建步骤主要有7步:1.硬件准备;2.配置RAID卡或存储设备;3.选择RAID级别;4.添加硬盘到RAID10组;5.添加硬盘到RAID10组;6.保存并退出配置;7.初始化RAID10阵列。RAID10,也被称为RAID1+0,是一种结合了RAID1的镜像功能和RAID0的条带化技术的存储阵列技术。它兼具了数据冗余和性能提升的优点,对于高端存储问题的解决有很大的帮助。RAID10的
【Python学习笔记】一些关于多线程,xls文件读取,PyQt5,PyInstaller打包等问题的解决方案记录
百里香酚兰
Python自学笔记python学习笔记pyinstallerxls文件PyQt5多线程
背景:最近利用休息时间写了个小型exe程序,主要涉及的技术点有:多线程,读取xls文件,基于PyQt5的简单GUI页面,利用PyInstaller打包成exe。虽然有ChatGPT等协助,但难免还是在开发过程中遇到了一些疑难问题,所以开个记录贴刊登解决方式。问题&解决方式:1.PyQt+PyInstaller:tqdm报错AttributeError:‘NoneType‘objecthasnoat
HarmonyNext实战:基于ArkTS的高性能数据流处理框架设计与实现
harmonyos-next
HarmonyNext实战:基于ArkTS的高性能数据流处理框架设计与实现引言在HarmonyNext生态系统中,数据流处理是构建高性能应用的关键技术之一。本文将深入探讨如何基于ArkTS构建一个高效的数据流处理框架,并适配HarmonyNext平台。我们将从架构设计、核心组件实现、性能优化等多个维度进行详细讲解,并通过实战案例展示如何在实际工程中应用这些技术。1.数据流处理框架的架构设计1.1框
基于HarmonyNext的ArkTS实战:构建高性能跨平台供应链管理系统
harmonyos-next
基于HarmonyNext的ArkTS实战:构建高性能跨平台供应链管理系统引言在现代供应链管理中,高效的数据处理和实时监控是提升运营效率的关键。随着HarmonyOSNext的发布,ArkTS作为其核心开发语言,为开发者提供了强大的工具来构建高性能、跨平台的应用。本文将深入探讨如何利用ArkTS12+的语法和HarmonyNext的特性,构建一个供应链管理系统。我们将通过一个详细的实战案例,讲解从
apache ftpserver-CentOS config
gengzg
apache
<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://mina.apache.o
优化MySQL数据库性能的八种方法
AILIKES
sqlmysql
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很
JeeSite 企业信息化快速开发平台
Kai_Ge
JeeSite
JeeSite 企业信息化快速开发平台
平台简介
JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流
通过Spring Mail Api发送邮件
120153216
邮件main
原文地址:http://www.open-open.com/lib/view/open1346857871615.html
使用Java Mail API来发送邮件也很容易实现,但是最近公司一个同事封装的邮件API实在让我无法接受,于是便打算改用Spring Mail API来发送邮件,顺便记录下这篇文章。 【Spring Mail API】
Spring Mail API都在org.spri
Pysvn 程序员使用指南
2002wmj
SVN
源文件:http://ju.outofmemory.cn/entry/35762
这是一篇关于pysvn模块的指南.
完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html.
pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.
该
在SQLSERVER中查找被阻塞和正在被阻塞的SQL
357029540
SQL Server
SELECT R.session_id AS BlockedSessionID ,
S.session_id AS BlockingSessionID ,
Q1.text AS Block
Intent 常用的用法备忘
7454103
.netandroidGoogleBlogF#
Intent
应该算是Android中特有的东西。你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料 。都指定好后,只要调用startActivity(),Android系统 会自动寻找最符合你指定要求的应用 程序,并执行该程序。
下面列出几种Intent 的用法
显示网页:
Spring定时器时间配置
adminjun
spring时间配置定时器
红圈中的值由6个数字组成,中间用空格分隔。第一个数字表示定时任务执行时间的秒,第二个数字表示分钟,第三个数字表示小时,后面三个数字表示日,月,年,< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
测试的时候,由于是每天定时执行,所以后面三个数
POJ 2421 Constructing Roads 最小生成树
aijuans
最小生成树
来源:http://poj.org/problem?id=2421
题意:还是给你n个点,然后求最小生成树。特殊之处在于有一些点之间已经连上了边。
思路:对于已经有边的点,特殊标记一下,加边的时候把这些边的权值赋值为0即可。这样就可以既保证这些边一定存在,又保证了所求的结果正确。
代码:
#include <iostream>
#include <cstdio>
重构笔记——提取方法(Extract Method)
ayaoxinchao
java重构提炼函数局部变量提取方法
提取方法(Extract Method)是最常用的重构手法之一。当看到一个方法过长或者方法很难让人理解其意图的时候,这时候就可以用提取方法这种重构手法。
下面是我学习这个重构手法的笔记:
提取方法看起来好像仅仅是将被提取方法中的一段代码,放到目标方法中。其实,当方法足够复杂的时候,提取方法也会变得复杂。当然,如果提取方法这种重构手法无法进行时,就可能需要选择其他
为UILabel添加点击事件
bewithme
UILabel
默认情况下UILabel是不支持点击事件的,网上查了查居然没有一个是完整的答案,现在我提供一个完整的代码。
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]
NoSQL数据库之Redis数据库管理(PHP-REDIS实例)
bijian1013
redis数据库NoSQL
一.redis.php
<?php
//实例化
$redis = new Redis();
//连接服务器
$redis->connect("localhost");
//授权
$redis->auth("lamplijie");
//相关操
SecureCRT使用备注
bingyingao
secureCRT每页行数
SecureCRT日志和卷屏行数设置
一、使用securecrt时,设置自动日志记录功能。
1、在C:\Program Files\SecureCRT\下新建一个文件夹(也就是你的CRT可执行文件的路径),命名为Logs;
2、点击Options -> Global Options -> Default Session -> Edite Default Sett
【Scala九】Scala核心三:泛型
bit1129
scala
泛型类
package spark.examples.scala.generics
class GenericClass[K, V](val k: K, val v: V) {
def print() {
println(k + "," + v)
}
}
object GenericClass {
def main(args: Arr
素数与音乐
bookjovi
素数数学haskell
由于一直在看haskell,不可避免的接触到了很多数学知识,其中数论最多,如素数,斐波那契数列等,很多在学生时代无法理解的数学现在似乎也能领悟到那么一点。
闲暇之余,从图书馆找了<<The music of primes>>和<<世界数学通史>>读了几遍。其中素数的音乐这本书与软件界熟知的&l
Java-Collections Framework学习与总结-IdentityHashMap
BrokenDreams
Collections
这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。
简单的说,IdentityHashMap和HashM
读《研磨设计模式》-代码笔记-享元模式-Flyweight
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java
PS人像润饰&调色教程集锦
cherishLC
PS
1、仿制图章沿轮廓润饰——柔化图像,凸显轮廓
http://www.howzhi.com/course/retouching/
新建一个透明图层,使用仿制图章不断Alt+鼠标左键选点,设置透明度为21%,大小为修饰区域的1/3左右(比如胳膊宽度的1/3),再沿纹理方向(比如胳膊方向)进行修饰。
所有修饰完成后,对该润饰图层添加噪声,噪声大小应该和
更新多个字段的UPDATE语句
crabdave
update
更新多个字段的UPDATE语句
update tableA a
set (a.v1, a.v2, a.v3, a.v4) = --使用括号确定更新的字段范围
hive实例讲解实现in和not in子句
daizj
hivenot inin
本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html
当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。
假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含
一道24点的10+种非人类解法(2,3,10,10)
dsjt
算法
这是人类算24点的方法?!!!
事件缘由:今天晚上突然看到一条24点状态,当时惊为天人,这NM叫人啊?以下是那条状态
朱明西 : 24点,算2 3 10 10,我LX炮狗等面对四张牌痛不欲生,结果跑跑同学扫了一眼说,算出来了,2的10次方减10的3次方。。我草这是人类的算24点啊。。
然后么。。。我就在深夜很得瑟的问室友求室友算
刚出完题,文哥的暴走之旅开始了
5秒后
关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题
dcj3sjt126com
yiiframework
在使用 YIi的路径管理工具时,发现了一个问题。 <?php  
对象与关系之间的矛盾:“阻抗失配”效应[转]
come_for_dream
对象
概述
“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。
“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次关系必须绑定为关系模式(将对象
学习编程那点事
gcq511120594
编程互联网
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
Reverse Linked List II
hcx2013
list
Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 
Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
Hadoop集群工具distcp
liyonghui160com
1. 环境描述
两个集群:rock 和 stone
rock无kerberos权限认证,stone有要求认证。
1. 从rock复制到stone,采用hdfs
Hadoop distcp -i hdfs://rock-nn:8020/user/cxz/input hdfs://stone-nn:8020/user/cxz/运行在rock端,即源端问题:报版本
一个备份MySQL数据库的简单Shell脚本
pda158
mysql脚本
主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份
数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。
1. 分别建立目录“backup”和“oldbackup” #mkdir /backup #mkdir /oldbackup
300个涵盖IT各方面的免费资源(中)——设计与编码篇
shoothao
IT资源图标库图片库色彩板字体
A. 免费的设计资源
Freebbble:来自于Dribbble的免费的高质量作品。
Dribbble:Dribbble上“免费”的搜索结果——这是巨大的宝藏。
Graphic Burger:每个像素点都做得很细的绝佳的设计资源。
Pixel Buddha:免费和优质资源的专业社区。
Premium Pixels:为那些有创意的人提供免费的素材。
thrift总结 - 跨语言服务开发
uule
thrift
官网
官网JAVA例子
thrift入门介绍
IBM-Apache Thrift - 可伸缩的跨语言服务开发框架
Thrift入门及Java实例演示
thrift的使用介绍
RPC
POM:
<dependency>
<groupId>org.apache.thrift</groupId>