- Android AsyncLayoutInflater异步加载xml布局文件,Kotlin
zhangphil
Androidkotlinandroidkotlin
AndroidAsyncLayoutInflater异步加载xml布局文件,Kotlinimplementation"androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01"importandroid.os.Bundleimportandroid.util.Logimportandroid.view.Viewimportandr
- 开源项目austin学习day01
努力向前ing
开源项目austin学习学习开源
尝试本地运行项目,遇到如下几个报错:1.om.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Couldnotcreateconnectiontodatabaseserver.Attemptedreconnect3times.Givingup.问题:jdbc版本与数据库版本不匹配解决方案:更改配置中的jdbc版本使与
- LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法
晨欣
langchain语言模型人工智能
什么是LLM的结构化输出能力?在一些工业级LLM应用或比较复杂的LLM应用编排环节,我们需要用LLM的输出作为下一环节的输入,而这个过程往往对LLM输出的格式有一定要求,比如JSON、XML、YAML、CSV、Markdown表格和HTML等比较常见的格式。因此我们需要通过各种方式手段让LLM具备符合我们期望的结构化输出能力,即模型能够按照用户指定的格式或规则生成内容(而不仅仅是自由形式的文本)的
- Android 列表视频滑动自动播放—2—实现具体代码
qq_21467035
音视频android音视频
本文基于Exoplayer+PlayerView实现列表视频显示一定比例后自动播放首先引入googlemedia3包implementation'androidx.media3:media3-exoplayer:1.1.1'implementation'androidx.media3:media3-exoplayer-dash:1.1.1'implementation'androidx.media
- 基于SSM框架的校园订餐小程序设计与实现
源码空间站11
课程设计点餐系统微信小程序小程序开发毕业设计
内容概要:该文章介绍了使用SSM(Spring+SpringMVC+MyBatis)框架及Java开发语言和MySQL数据库,设计并实现了一款名为“校园订餐”的小程序。文中从系统需求出发,阐述了系统背景意义与国内外研究现状发展趋势,明确了需求并分析了系统可行性。随后详细讲解了系统的功能模块、数据库设计方案、微信小程序前端和后台管理的具体实现过程,包括登录注册、餐厅信息管理、美食信息管理和订单管理等
- 【新手入门】SQL注入之数据库数据读取
见青..
sql数据库web安全前端
数据库数据读取获取当前数据库名、用户名、版本等信息'unionselectuser(),version()--+获取mysql所有库名'unionselect1,group_concat(schema_name)frominformation_schema.schemata+--+获取所有字段数据比如获取users表的所有数据指令:'unionselect1,group_concat(id,0x7
- 快速入门 FastAdmin 的开发环境搭建
奥顺互联_老张
php教程php缓存mysql
快速入门FastAdmin的开发环境搭建FastAdmin是一个基于ThinkPHP和Bootstrap的后台管理框架,专为快速开发而设计。本文将为您详细介绍如何搭建FastAdmin的开发环境,包括所需的环境配置、安装步骤以及简单的示例代码。1.环境要求在开始之前,请确保您的开发环境满足以下要求:PHP7.2及以上版本ComposerMySQL5.6及以上版本Nginx或ApacheGit(可选
- nacos启动报错Unable to start embedded Tomcat
xsj_592523829
javajavaspringboot
项目场景:准备使用nacos做配置中心,版本1.3.1(官方推荐稳定版本–2021-01-11)mysql版本:5.7版本(听说5.8改动很大),否则运行不了nacos-mysql.sql文件JDK版本:1.8.0_144(版本低了也不行)问题描述:1、本地idea运行springcloudalibabanacos源码报错UnabletostartembeddedTomcatorg.springf
- MySQL中OR操作导致索引失效的深度解析与技术优化方案
阿豆学编程
Mysqlmysql数据库
一、索引机制与查询优化基础B+树索引的结构特性MySQL采用B+树作为核心索引结构,其平衡多路搜索树的特性保证了O(logN)的查询效率。B+树具有以下显著特征:所有叶子节点形成有序链表,支持高效范围查询非叶子节点仅存储索引键值,不保存数据指针数据记录按主键顺序存储在聚簇索引的叶子节点每个节点存储的键值数量由页大小和键值长度决定以InnoDB引擎为例,其默认页大小为16KB。假设索引键为INT类型
- MySQL限制登陆失败次数配置
泠然一梦
mysqladb数据库linux服务器运维windows
目录一、限制登陆策略1、Windows2、Linux一、限制登陆策略1、Windows1)安装插件登录MySQL数据库mysql-uroot-p执行命令安装插件#限制登陆失败次数插件installpluginCONNECTION_CONTROLsoname'connection_control.dll';installpluginCONNECTION_CONTROL_FAILED_LOGIN_AT
- 【WPF命令绑定之--没有Command属性的控件如何进行命令绑定?】
吾与谁归in
C#学习WPFwpfc#
前言C#WPF之命令绑定内容有些控件不支持直接绑定命令,可以调用其他依赖实现命令的绑定。依赖:Microsoft.Xaml.Behaviors.Wpf使用如下代码可以实现事件的命令绑定,及传递参数:1、引用:xmlns:behavior=“http://schemas.microsoft.com/xaml/behaviors”2、添加命令绑定代码(如:代码①)3、创建实现ICommand的类pub
- MySQL 中的 SQL 执行流程(5.7 之前的版本)
JiaHao汤
MySQLmysqlsql数据库后端
文章目录第一步:查询缓存判断是否被命中第二步:解析器进行语法及语义分析第三步:优化器确认SQL执行方式第四步:执行器执行SQL当执行一条查询SQL时,MySQL5.7之前的版本的SQL执行流程可以用下图进行概括:以下对上图中的每一步进行分析。第一步:查询缓存判断是否被命中SQL执行的第一步是MySQL服务端从查询缓存中检查当前需要执行的SQL能否命中查询缓存。MySQL查询缓存的本质是将SQL及对
- 简单爬取一下电影排行
孟婆来包棒棒糖~
数据库python爬虫
主要用到了requests和xpath来解析数据,然后储存在mysql数据库中,不过代码方面我是先写好简单实现工作,然后让ai帮我用类封装来成功实现,博主比较菜,如果有反爬措施可以找js逆向视频来学习importrequestsfromfake_useragentimportUserAgentfromlxmlimportetreeimportpymysqlfrompymysql.cursorsim
- 23道 K8S 面试题
奋斗喝咖啡
dockerkubernetes容器
1、k8s是什么?请说出你的了解?答:Kubernetes是一个针对容器应用,进行自动部署,弹性伸缩和管理的开源系统。主要功能是生产环境中的容器编排。K8S是Google公司推出的,它来源于由Google公司内部使用了15年的Borg系统,集结了Borg的精华。2、K8s架构的组成是什么?答:和大多数分布式系统一样,K8S集群至少需要一个主节点(Master)和多个计算节点(Node)。主节点主要
- 一个Spring框架笔记
A_cot
spring数据库java后端开发语言springcloudspringboot
Spring框架基于JavaEE的轻量级框架,使用spring可以降低模块的耦合度,提高开发效率。Spring框架的两大核心技术:IOCIOC:控制反转DI:依赖注入AOP面向切面编程Spring的模块划分:SpringIOCSpringAOPSpringJDBC(Spring+MyBatis)Spring事务Spring作用Dao层(数据访问层)数据库的JDBC操作对应的框架:MyBatis或H
- maven项目pom文件以war包方式导入依赖,修改依赖中某个子依赖版本失败
HPF_99
javamavenjava
在开发中,有一个项目扫描到安全漏洞,要升级jackson版本法一:直接在pom.xml文件中导入完整的依赖com.alibabafastjson2.13.5这样可以直接将原来的依赖修改。如以上方法不行,查看maven库;打包插件是否有问题法二:因pom文件导入的依赖过多,先用idea中maven组件找到依赖来源。找到一个依赖是以jar方式导入,此依赖pom文件中确实导入了jackson,这种的话,
- mybatis使用注解查询
HPF_99
javamybatismysqlmybatisjavamysqlxml
mybatis入门案例不使用注解入门案例:在入门案例的的基础上进行首先使用注解的话可以不使用UserMapper.xml,所以可以将这个文件去掉。UserMapper的两个查询(其他操作类似):packagecom.feng.dao;importcom.feng.pojo.User;importorg.apache.ibatis.annotations.Param;importorg.apache
- myabtis入门案例
HPF_99
mybatisjavamysqljavamybatis
mybatis入门案例1.新建项目(Maven),搭建环境数据库(名:mybatis,表user)导出sql:/*NavicatMySQLDataTransferSourceServer:localhost_3306SourceServerVersion:50162SourceHost:localhost:3306SourceDatabase:mybatisTargetServerType:MYS
- IDEA修改recent project的路径
胖毁青春,瘦解百病
#IDEA
有时候需要将某些项目统一放到另外一个工作区间,此时可以通过修改下面的文件来解决文件路径问题C:\Users%username%.IntelliJIdea2019.3\config\options\recentProjects.xml.IntelliJIdea2019.3为2019年IDEA的路径,2020年后面升级之后移动到了C:\Users%username%\AppData\Roaming\J
- 清空idea中Recent Projects记录
神钟情的男人
IntelliJIDEAintellij-idea
1.关闭idea2.进入C:\Users\fei97\AppData\Roaming\JetBrains\IntelliJIdea2024.1\options目录3.修改recentProjects.xml内容为注意:如果找不到recentProjects.xml文件,可以使用Everything软件搜一下4.重启idea
- MYSQL实现动态替换字符串某个下标位置的值的函数
bilibilidicks
mysqljava数据库
DELIMITER$$CREATEFUNCTIONreplace_in_array(input_stringVARCHAR(255),split_delimiterVARCHAR(1),numberINT,targetStrVARCHAR(255))RETURNSVARCHAR(255)BEGINDECLAREtemp_arrayVARCHAR(255)DEFAULTinput_string;DE
- 浅谈sql注入(2)
CQMXYZ
sql数据库安全
上次谈到了简单的几何不怎么存在了的sql注入漏洞,但是注入过程却是最为宝贵的,之后各种各样的sql注入都是根据这个改造的,现在,我们来谈谈一些注入方法吧。(上次忘说了万能钥匙or1=1)首先就是报错注入,其原理就是利用updatexml、extractvalue等一些函数的报错机制,在报错信息里回显相关数据。可以看到,这种注入适于只显示报错而不现实正确信息的注入漏洞,所以,这同样可以用盲注解决。我
- 删除idea recent projects 记录
元气满满的码农
intellij-ideajavaide
1、退出idea(一定要全部退出idea,要不然删除后,idea一退出,又保存上了)2、进入C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2024.1\options目录根据不同的版本号IntelliJIdea2024.1这个地方不一样3、删除recentProjects.xml内容中的结点4、启动idea
- .Net 不同版本的.Net框架的代码之间互相引用
这个月太忙没时间看C++
技术.net
有时候想用高版本的.Net框架,而某一部分封装好的工具类是低版本的例:使用.Net4.7.2写的主程序,需要引用.Net4.5.2写的数据库帮助类,因为数据库帮助类已经引用了对应4.5版本的Mysql.dll或其他的数据库引擎提供的dll,不方便更改帮助类的框架就可以使用这个方法对.Net4.5.2的数据库帮助类进行调用Config配置文件里:标记每个程序集。-->调用时:Assemblyass=
- 微信小程序开发中,wxss和wxml写完后页面不显示,可能的原因包括:
IT_linux
微信小程序小程序
1.代码错误:有时候代码中存在错误,但编译器不会报错,导致页面不显示。这种情况下,可以通过注释掉一部分代码,一段一段地查找问题所在1。2.路径问题:检查app.json中页面引入的路径是否正确2。3.JS文件为空:确保当前wxml文件对应的js文件不为空,即使没有具体的处理逻辑,也不能没有js代码2。4.数据量大或页面元素多:如果数据量很大或页面标签特别多,可能会导致页面加载缓慢或预览困难。这种情
- 从Google白皮书看企业安全最佳实践5
英维兄弟
安全
前不久Google发布了一份安全方面的白皮书GoogleInfrastructureSecurityDesignOverview,直译的版本可以参考“网路冷眼”这版《Google基础设施安全设计概述》,直译+点评的版本可以参考“职业欠钱”的《Google基础设施安全设计概述翻译和导读》。此前Google在安全领域披露的信息一直很少,适逢其大力发展云计算业务,需要展示云安全方面的实力,才有了这份白皮
- 深度学习框架之主流学习框架
uu1224
深度学习学习人工智能机器学习神经网络
深度学习框架是一类专门设计用来简化和加速神经网络模型开发过程的软件工具。它们提供了构建、训练和部署神经网络所需的各种功能和库。以下是一些主流的深度学习框架及其特点:TensorFlow:由Google开发,是一个广泛使用的开源深度学习框架。它以强大的图计算模型和分布式计算能力著称,并且通过高级API如Keras,为用户提供了易于上手的开发体验。PyTorch:由Facebook开发,以其动态计算图
- 一个py文件搞定mysql查询+Json转换+表数据提取+根据数据条件生成excel文件+打包运行一条龙
小木可菜鸟测试一枚
mysqljsonexcel
importosimportargparseimportpymssqlimportjsonimportpandasaspdfromdatetimeimportdatetimefrompandas.io.formats.excelimportExcelFormatterimportopenpyxl#投注类型映射字典BET_MAPPING={1:'WIN',2:'PLA',3:'QIN',4:'QPL
- 阿里云ESC windws服务器部署springboot+vue前后端分离项目
溫冬''123
项目部署springboot阿里云服务器
window服务器部署springboot+vue项目前期准备:1、完整的项目源码我这里的项目前端是vue,后端是springboot+redis+mysql2、服务器我使用的是阿里云的ESC服务器(偷偷告诉你们,新手都可以白嫖一个月的服务器)服务器系统是windows至于我为什么不用linux,害别说了,新手还是先用window先吧。3、服务器环境搭建我们部署项目需要搭建项目的环境,其实仔细想想
- Linux 下使用mtr命令来进行网络诊断
linux
简介mtr(MyTraceroute)命令是一个结合了ping和traceroute功能的网络诊断工具。它提供网络路径的实时分析并帮助诊断连接问题安装Debian/Ubuntusudoaptinstallmtr-yRHEL/CentOSsudoyuminstallmtr-yFedorasudodnfinstallmtr-y示例用法基础用法mtr示例这会持续追踪数据包到google.com的路由,并
- 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