- 怎么使用Mybatisplus的分页插件来完成分页
努力学习的小宇同学
从0开始做一个前后端分离项目MybatisPlus分页插件Mybatisplus分页分页插件
前端使用的Elementui后端1.在配置里配置数据源spring:datasource:url:jdbc:mysql://localhost:3306/vueadmin?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTCusername:rootpassword:Qq702196driver-class-name:com.mysq
- React教案
涔溪
react.js前端前端框架
ECMAScript61、ES6简介1.1、什么是ES6ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。1.2、ECMAScript和JavaScript的关系一个常见的问题是,ECMAScript和JavaScript到底是什么关系?要讲
- django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on '176.122.12.103' (10060)
雾江流
问题解决MySQL
django.db.utils.OperationalError:(2002,"Can’tconnecttoMySQLserveron‘176.122.12.103’(10060)记一次连接不上虚拟机mysql的情况:昨天连mysql连的好好的,今天突然发现不能连了,报错django.db.utils.OperationalError:(2002,"Can’tconnecttoMySQLserve
- 快速上手 Electron 及推荐库
Liumoui
electronjavascript前端
###快速上手Electron及推荐库####什么是Electron?Electron是一个基于Node.js和Chromium的框架,用于构建跨平台的桌面应用程序。它将网页技术(HTML、CSS和JavaScript)带入桌面应用开发,允许开发者使用熟悉的前端技术构建功能强大的桌面应用。####Electron的基本概念1.**主进程和渲染进程**-**主进程**:运行在Node.js环境中,负
- react的单页面应用SPA及路由组件
易烊千鹤
前端框架#reactreactjs
SPA的理解单页Web应用(siglepagewebapplication,SPA)。整个用用只有一个完整的页面.点击页面中的链接不会刷新,只会做页面的局部刷新。数据都需要通过ajax请求获取,并在前端异步展现。路由的理解1.什么是路由?一个路由就是一个映射关系(key:value)key为路径,value可能就是function或者component2.路由分类.后端路由:理解:value是fu
- php与硬件交互开发,一文打通前后端与软硬件交互
weixin_39946534
php与硬件交互开发
前言之前看了一篇文章,直接把我之前所学的很多知识瞬间打通了,这里也给大家分享出来。主要关于如何把前端,后端,以及硬件相结合起来,其实方法有很多种,这里只是给一个思路。首先分别介绍一下软件(前后端),硬件,以及软硬件的交互。前端前端就是指我们用户所能够看到的页面,比如Web网页,安卓APP;以Web页面为例,Web页面可以利用一些现有的样式实现炫酷效果,熟悉前端的小伙伴应该知道前端三剑客:html5
- 学习react day02
花开富贵城
react.js学习前端
(1)jsx即javascript+xml其实就是JavaScript对象JSX——使用react构造组件,bable进行编译==>JavaScript对象——ReactDom.render()==>DOM元素==>插入页面(2)创建组件importReactfrom'react'importReactDOMfrom'react-dom/client';//把react组件渲染到页面//impor
- vsCode保存代码自动格式化
花开富贵城
vscodeide编辑器
{"editor.formatOnSave":true,"[vue]":{"editor.defaultFormatter":"octref.vetur"},"files.autoSave":"off","eslint.validate":["javascript","javascriptreact","vue-html",{"language":"vue","autoFix":true}],"e
- SautinSoft HTML to RTF .Net Crack
SEO-狼术
DelphinetCrackhtml.net前端
SautinSoftHTMLtoRTF.NetCrackKeyFeaturesofSautinSoftHTMLtoRTF.Net:HTMLtoDOCXConversion:ConvertHTMLcontentintoDOCXfileswithfullsupportforCSSandsimpleJavaScript,creatingwell-formattedWorddocuments.HTMLto
- ES6 解构赋值
前白
解构赋值是对赋值运算符的扩展。是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。数组的解构赋值ES6中可以从数组中提取值,对变量进行赋值,这种过程称为解构。示例:例如下面这个例子,从数组中提取值,按照对应位置,对变量赋值:let[x,k,d]=[1,2,3];console.log(x);//输出:1console.log(k);//输出:2console.log(d);//输出:3这
- JavaScript 显示对象
软件技术NINI
jsjavascript网络udp
如何显示JavaScript对象?显示JavaScript对象将输出[objectObject]。实例constperson={name:"Bill",age:19,city:"Seattle"};document.getElementById("demo").innerHTML=person;//[objectObject]显示JavaScript对象的一些常见解决方案是:按名称显示对象属性循环
- 【前端】NodeJS:fs模块
子非鱼921
【前端】NodeJS前端node.jsjavascript开发语言
文章目录fs模块1文件写入1.1writeFile异步写入1.2writeFileSync同步写入1.3appendFile/appendFileSync追加写入1.4createWriteStream流式写入1.5写入文件的场景2文件读取2.1readFile异步读取2.2readFileSync同步读取2.3createReadStream流式读取2.4读取文件应用场景3文件移动与重命名4文件
- JavaScript-防抖和节流
好哈优学编程
javascript开发语言
防抖(debounce):如果一个函数持续地触发,那么只在它停止触发的一段时间后才执行,如果在这段时间内又开始持续触发,则重新计算时间。防抖函数的实现如下:functiondebounce(func,wait){lettimeout;returnfunction(){clearTimeout(timeout);timeout=setTimeout(()=>{func.apply(this,argu
- 高版本Chrome网页直接播放海康威视大华RTSP流方案,不需服务器转码转流,支持H.265、H.264及2K/4K高清视频
bubailai
ChromeRTSPchromertspvue.js前端
近期公司在做一个智慧城市项目,需要在高版本Chrome网页播放海康威视、大华、或者华为摄像头RTSP流,于是在网上开始找对应的解决方案,没想到网上各种转码转流方案纷繁复杂,找到一款稳定商用满足需求的很难!目前网上有两种所谓无插件方案,即后端转码前端播放的方法和后端转流前端转码的方案,虽然无插件播放方案能够播放出画面,但是往往延迟很高,基本上都在数秒之久,在一些对延迟敏感的场合客户要求毫秒级延迟,显
- springMVC笔记系列(19)——控制器实现详解(上)
weixin_34290390
java测试前端ViewUI
2019独角兽企业重金招聘Python工程师标准>>>本文我们在前文基础上引入一个例子,边做边聊控制器。我们想实现一个课程查询的功能。首先大脑应该条件反射——如何定义MVC。M:课程(包含章节)——Course(包含Chapter)V:课程页面——course_overview.jspC:编写一个控制器接收springMVC前端控制器dispatcherServlet的请求转发——CourseCo
- 《React Hooks:让你的组件更灵活》
Envyᥫᩣ
react.js前端前端框架
前端开发中非常流行的React框架。React是一个用于构建用户界面的JavaScript库,尤其适用于构建复杂的单页应用。ReactHooks:让你的组件更灵活React是当今最受欢迎的前端JavaScript库之一,用于构建用户界面。自从React16.8版本开始,React引入了一种新的功能——Hooks,它为函数组件带来了更多的可能性。Hooks允许你在不编写类的情况下使用state和其他
- js相关知识
623_54e8
JavaScript相关知识页面中添加JavaScript页面加载之前就会执行页面加载时候执行大多数情况,代码会增加到页面的head的部分,如果将代码增加到体的末尾,这会使性能稍有提升,不过只有确实需要深度优化页面性能时才有必要这么做。一件重要的事情,页面完全加载之后再执行JavaScript代码做法如下:页面完全加载之前不要打扰DOM1.浏览器加载页面创建文档的一个内部模型,包括标记的所有元素2
- JavaScript练习(一)
浅笑心柔142
javascript前端
练习1:定义变量存储以下信息,然后按如下格式在页面上输出姓名:张三年龄:21性别:男职业:学生住址:江苏南京电话:1234567varname="张三";varage="21";varsex="男";varjob="学生";varaddress="江苏南京";varphone="1234567";document.write("姓名:"+name+"");document.write("年龄:"+
- 【一文读懂】ECMAScript
热爱分享的博士僧
ecmascript
ECMAScript(通常简称为ES)是一种脚本语言的标准规范,由欧洲计算机制造商协会(ECMAInternational)制定。JavaScript是最著名的实现了ECMAScript规范的语言,广泛用于Web开发。ECMAScript定义了语言的核心语法和特性,但不包括任何关于图形界面、网络请求等与平台相关的API,这些通常是JavaScript运行时环境提供的额外功能,例如浏览器中的DOM(
- 数据切分的艺术:使用PyTorch的torch.utils.data.random_split精粹指南
2402_85758349
机器学习
数据切分的艺术:使用PyTorch的torch.utils.data.random_split精粹指南在机器学习项目中,合理地分割数据集至关重,它不仅关系到模型训练的有效性,还直接影响到模型的泛化能力。PyTorch提供了一个强大的工具torch.utils.data.random_split,它能够以随机的方式将数据集分割成若干个子集。本文将详细介绍如何使用这一工具进行数据集的随机分割。1.随机
- org.apache.commons.lang.math.NumberUtils#isNumber 解释
秋夫人
javajava
源码/***CheckswhethertheStringavalidJavanumber.**Validnumbersincludehexadecimalmarkedwiththe0x*qualifier,scientificnotationandnumbersmarkedwithatype*qualifier(e.g.123L).**NullandemptyStringwillreturn*fa
- JavaScript 中,不同的赋值方式适用场景
前端小芬芬
javascript
在JavaScript中,不同的赋值方式适用于不同的场景。以下是每种赋值方式的详细解释和使用场景:1.使用扩展运算符...进行浅拷贝letobj={...data};功能:创建一个新的对象,并将data对象的所有可枚举属性复制到新对象中。适用场景:适用于简单对象的浅拷贝,特别是当对象的属性不包含嵌套对象或数组时。示例:letdata={a:1,b:2};letobj={...data};conso
- 打卡第60天------图论
感谢上Di_123
前端算法题图论
加油!尽管前面的道路很困难,但是依然要坚持下去✊。在算法训练营我学到了很多东西,对于算法的方法来说真的是涨知识了,对于我一个非科班出身,半路转行的干IT的人来说真的给予了我很大的帮助。我会继续回头看代码随想录分享的那些干货的,温故而知新。接下来我就要开始去攻克前端的框架源码和底层原理了,技术深度不够,面试总是挂,要攻克薄弱点了。今天大家会感受到Bellman_ford算法系列在不同场景下的应用。建
- flaresolverr环境搭建
野生猕猴桃
FlareSolverrflareSolverrcloudflare爬虫跳过cloudflare
FlareSolverr是一个基于浏览器自动化技术的反爬虫解决方案。它可以应对一些比较复杂的反爬虫策略,如Cloudflare、hCaptcha等,并提供了简单易用的API接口。具体来说,FlareSolverr就是一个被动式的浏览器渲染服务,它使用了HeadlessChrome和Puppeteer技术来模拟人工操作浏览器的行为,并通过自定义的JavaScript脚本和与浏览器进行交互,最终获取网
- 社会(逻辑)的本质,层(方法和类)
庖丁解java
java系统架构
从javaSE,到中间件,再到系统间对接,我本觉得逻辑已经完备,以后的工作就是慢慢填补细节,直到把整个java语言,彻底解析清除.从而使得工作能够变得游刃有余,最后再公司混个架构师当当...哈哈,想得有点远了.后来越看越不对,因为我在想javaSE的时候,发现一个东西,就是utils(工具类)这个东西,似乎不太属于javaSE基础内容.但你说他属于业务内容吧,也不太对.但一回想我的具体工作,发现u
- 【软件测试】术语定义
Play_Sai
软件测试自动化测试性能测试接口测试术语定义软件测试
1、接口测试接口测试概念:是测试系统组件间接口的一种测试方法接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期接口测试能发现哪些问题:可以发现很多在页面上操作发现不了的bug、检查系统的处理异常能力、检查系统的安全性、稳定性、可以修改请求参数,突破前端页面输入限制2、性能测试并发用户数
- HarmonyOS开发实战:Node-API扩展能力接口
小小煤球
鸿蒙开发HarmonyOSOpenHarmonymicrosoft鸿蒙华为harmonyos前端鸿蒙系统开发语言
前言:扩展能力接口进一步扩展了Node-API的功能,提供了一些额外的接口,用于在Node-API模块中与JavaScript进行更灵活的交互和定制。这些接口可以用于创建自定义JavaScript对象等场景。基本概念在理解Node-API扩展能力接口之前,需要了解一些基本概念:模块:一个模块是一个可重用的、独立的代码单元。它封装了相关功能,并可以被其他模块引用和使用。命名空间:命名空间是一种用于组
- python编写API接口实现数据筛选、查询与分页
唯余木叶下弦声
python开发语言
目录一、背景二、代码一、背景由于系统上需要分页展示数据,并提供按字段筛选数据的功能,于是需要我写个接口,以供前端使用。接口可以通过pythonflask框架实现。Flask是一个轻量级的Web框架,它提供了足够的灵活性来构建定制的RESTfulAPI。开发者可以根据需求轻松地设计和实现接口。数据的查询可以通过pymysql连接MySQL数据库实现。数据的筛选和分页可以通过堆叠where条件、row
- VUE3笔记
一介书生.
前端javascriptvue.js前端
前端系列一、HTML5二、CSS3三、JavaScript四、jQuery五、BootStrap六、Element七、Ajax八、JSON九、VUE3第一章、基础一、vue简介1、学习阶段vue2基础vue-cli(vue的手脚架,专门做工程化开发)vue-router(实现前端路由的)vuex(vue存储数据的)element-ui(ui组件库)vue32、vue的特点采用组件化模式,提高代码复
- 前端性能优化-CSS性能优化
LYFlied
css前端css性能优化面试
文章目录一、内联首屏关键CSS二、异步加载CSS异步加载的几种方式1.js动态创建样式表link元素,并插入到DOM中。2.设置media属性3.设置rel属性4.rel="preload"三、文件压缩四、去除无用CSS五、有选择地使用选择器六、减少使用昂贵的属性七、优化重排与重绘1.减少重排2.避免不必要的重绘八、让元素及其内容尽可能独立于文档树的其余部分九、避免使用@import十、开启GPU
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D