- 基于CentOS7.0安装部署Tomcat应用服务器
后青春期的诗go
服务器操作系统实战资料tomcatjava
一、安装部署步骤1.检查是否安装jdk执行java-version若有版本信息,表明已安装jdk2.下载安装包apache-tomcat-7.0.29.tar.gz并上传至/usr/local目录里或者到/usr/local目录下执行wgethttp://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat
- CentOS 7 镜像源失效解决方案(2025年)
码农 小王
centoslinux运维
执行yumupdate报错:yuminstall-yyum-utils\>device-mapper-persistent-data\>lvm2--skip-broken已加载插件:fastestmirror,langpacksLoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.cento
- 【家政平台开发(12)】家政平台数据库设计:从MySQL到MyBatis-Plus实战
奔跑吧邓邓子
家政平台开发家政平台开发数据库MySQLMyBatis-Plus
本【家政平台开发】专栏聚焦家政平台从0到1的全流程打造。从前期需求分析,剖析家政行业现状、挖掘用户需求与梳理功能要点,到系统设计阶段的架构选型、数据库构建,再到开发阶段各模块逐一实现。涵盖移动与PC端设计、接口开发及性能优化,测试阶段多维度保障平台质量,部署发布阶段确保平稳上线。还深入探讨运营策略、技术创新应用及未来发展方向,为家政平台开发提供全面且实用的知识体系与实践指南。目录一、数据库概念设计
- x-cmd pkg | uv - 用 Rust 开发的极其快速的 Python 包和项目管理器
x-cmd
pkguvrustpythonpip命令行pipxpyenv
目录简介快速上手功能特点竞品和相关项目进一步阅读简介uv是由astral-sh用Rust编写的python包和项目管理器,能替代pip、pip-tools、pipx、poetry、pyenv、virtualenv等。它提供了全面的Python项目管理功能,能安装和管理不同版本的Python,能管理Python项目环境,能下载并运行Python应用程序,且比pip要快10倍以上。快速上手安装并启动u
- Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件
珹洺
#RHCSALinux操作系统linuxandroid数据库运维网络后端
Linux红帽:RHCSA认证知识讲解(十)使用tar创建归档和压缩文件前言一、归档与压缩的基本概念1.1归档与压缩的区别二、使用tar创建归档文件2.1tar命令格式2.2示例操作三、使用tar进行压缩3.2命令格式3.3示例操作前言在红帽Linux系统中,tar是一个非常强大的工具,用于创建归档文件和进行压缩操作。无论是备份重要数据,还是在系统之间传输文件,掌握tar的使用方法都是非常有用的。
- 【docker系列】常用命令
yunqi1215
Dockerdockereurekajava
1.容器管理1.1容器生命周期命令说明dockerrun-d--namemy-nginxnginx启动容器(-d后台运行)dockerstartmy-nginx启动已停止的容器dockerstopmy-nginx停止运行中的容器dockerrestartmy-nginx重启容器dockerrmmy-nginx删除已停止的容器dockerrm-fmy-nginx强制删除运行中的容器dockerpau
- 【openstack系列】虚拟化技术
yunqi1215
openstackopenstack
OpenStack是一个开源的云计算管理平台,它本身并不直接提供虚拟化技术,而是通过集成不同的虚拟化解决方案来管理和编排计算、存储和网络资源。OpenStack的核心优势在于其灵活性和可扩展性,支持多种虚拟化技术(Hypervisor),使企业可以根据需求选择合适的底层虚拟化方案。以下是OpenStack中常用的虚拟化技术及其特点:1.KVM(Kernel-basedVirtualMachine)
- 每天一linux命令,推荐linux学习博客-每日一linux命令
SMS Parry
每天一linux命令
思索、感悟、践行!走向高效,快乐,平衡!已下目录是本人用爬虫爬取的!每天一个linux命令(61):wget命令每天一个linux命令(60):scp命令每天一个linux命令(59):rcp命令每天一个linux命令(58):telnet命令每天一个linux命令(57):ss命令每天一个linux命令(56):netstat命令每天一个linux命令(55):traceroute命令每天一个l
- Jenkins安装使用及控制台乱码问题
FrankyTurbo
Jenkinsjenkins自动化部署
1.下载运行官网下载地址:https://jenkins.io/zh/download/安装方式,我采用的是war包安装,打开命令行,cd至jenkins.war目录,执行java-jarjenkins.war--httpPort=9080,httpPort为指定的端口。打开浏览器输入http://localhost:9080,回车,访问到如下页面到这个路径下,打开文件,复制字符到输入框,继续2.
- C# System.Text.Json 中 JsonConverter 使用详解
鲤籽鲲
C#c#json.net
总目录前言在C#开发中,System.Text.Json是一个高性能的JSON处理库,广泛用于序列化和反序列化对象。当默认的序列化行为无法满足需求时,JsonConverter提供了强大的自定义能力。本文将详细讲解JsonConverter的使用方法,帮助你灵活处理复杂的JSON数据。一、JsonConverter是什么?1.概述JsonConverter是System.Text.Json.Ser
- 【RAGFlow】ubuntu22部署ragflow(v0.17.2)
onlyellow
AIai
按照官方手册部署:https://ragflow.io/docs/v0.17.2/部署环境:CPU:4核memory:16gGPU:T4(vGPU)Disk:20g1.配置国内docker-ce源https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/用清华源,要不然下载速度感人2.安装dockerapt-getupdateapt-getinstal
- python找不到自定义包的解决办法
qqcao587
参考:cpython找不到自定义包的解决办法举例:importsysimportosrootpath=str("/data/Datacube/")syspath=sys.pathsys.path=[]sys.path.append(rootpath)#将工程根目录加入到python搜索路径中sys.path.extend([rootpath+iforiinos.listdir(rootpath)i
- jQuery 选择器
難釋懷
jquery前端javascript
在Web开发中,DOM操作是前端开发的核心部分之一。jQuery作为一款轻量级的JavaScript库,以其简洁的语法和强大的功能极大地简化了DOM操作。其中,jQuery的选择器机制更是让开发者能够以极高的效率定位页面中的元素。本文将详细介绍jQuery选择器的基本概念、使用方法及其应用场景。一、什么是jQuery选择器?jQuery选择器允许你通过特定的语法来选取HTML文档中的元素,并对其进
- 如何在ubuntu上安装virtualbox 7.0
Jackson722
ubuntulinux运维
使用apt命令安装,非常简单,但版本较老。这里介绍用Oracle进行virtualbox7.0的安装过程,对于安装其他的更新的版本也一样。1.首先更新安装包:$sudoapt-getautoremovepurgevirtualbox*$sudoaptupdate2.添加virtualbox的库:$curlhttps://www.virtualbox.org/download/oracle_vbox
- ValueError: Invalid async_mode specified
聪明小萝卜
常见报错pythonpython
1.在使用flask的时候遇到这个报错Traceback(mostrecentcalllast):File"e:\Senior\Autumn\study\Graduation\Code\Project\Backend\app.py",line9,insocketio=SocketIO(app)File"D:\ProgramData\anaconda3\envs\graduation\lib\sit
- 配置vCenter FTP备份
呱嗒笔记
vSphere服务器运维
最近需要配置vCenter备份,于是自己使用windows10搭建了一个FTP,看起来简单,但是也踩了两个坑,花了两三个小时才搞定,做个记录。关于坑记录在最后,虽然没能准确定位原因,但是经过这几方面的排查改进,总算搞定。准备FTP服务器:!!!关闭防火墙1、找一台windows10,配置好IP地址,打开windowsFTP服务器功能,以及Web管理工具2、创建ftp账户,在计算机管理->用户中创建
- PHP JSON-RPC 2.0 开源项目教程
何媚京
PHPJSON-RPC2.0开源项目教程php-json-rpcFullyunit-testedJSON-RPC2.0forPHP项目地址:https://gitcode.com/gh_mirrors/ph/php-json-rpc项目介绍PHPJSON-RPC2.0是一个全面单元测试支持的JSON-RPC2.0实现,适用于PHP环境。此项目由Datto提供,旨在帮助开发者轻松创建和处理符合JSO
- 刚毕业的大学生从事嵌入式技能列表
froxy
工具单片机嵌入式硬件
一、基础知识能力编程语言C语言:嵌入式开发的核心语言,需精通指针、内存管理、结构体、位操作等。C++(部分场景):熟悉面向对象编程,了解嵌入式场景下的高效代码设计。汇编语言:理解底层硬件操作(如启动代码、中断处理)。硬件基础数字电路与模拟电路:理解基本电路设计、ADC/DAC、信号调理等。微控制器(MCU)架构:熟悉ARMCortex-M/A系列、RISC-V等常见内核,了解寄存器配置、时钟系统、
- STL容器中不进行前置条件检查有可能导致不安全的操作
froxy
c++c++开发语言
在STL容器中,某些操作如果未进行前置条件检查(如空容器检查、越界检查或迭代器有效性检查),会导致未定义行为(UB)或逻辑错误。以下是常见的不安全操作及注意事项:一、访问元素时的未检查操作1.operator[]的越界访问容器类型:std::vector、std::deque、std::map、std::unordered_map。问题:对vector/deque使用operator[]时,若索引
- 服务器端ftp自动异地备份小工具
aku88168
linux自动化运维开发
现在服务器进入云时代,维护变得越来越简单了,但是服务器被黑是永恒得话题。为了保证服务器中数据得安全,需要做到异地备份某些关键文件。自己用go语言开发了一套ftp自动备份程序。该程序可以通过ftp把当前服务器得文件备份到异地。可以定时备份。程序主要有两个文件:ftpautobak,conf.jsonconf.json文件内容{"ftp":{"Host":"102.1.2.3","Name":"tes
- SocketTimeoutException: Read timed out 的解决方法
追逐梦想永不停
springboot超时
springboot项目,有一个接口的处理时间确实比较长,客户端调用这个接口就会报错,SocketTimeoutException:Readtimedout。(这个接口是把文件流返回给客户端用的)解决方法,可以修改springboot配置文件,如下:#设置连接超时为300秒server.tomcat.connection-timeout=300s#设置读取超时为300秒server.servlet
- c# 如何删除redis存储中增加的外键
A_nanda
c#redis
在Redis中虽然没有传统数据库的「外键约束」,但开发者通常会手动维护关联数据(如索引、反向引用等)。以下是**C#中删除Redis中“外键”的完整方案及代码实现:场景分析假设有如下数据模型:主数据:用户信息存储为user:{id}(Hash类型)。外键索引:user:name_to_id(Hash类型):用户名到用户ID的映射。user:email_set(Set类型):存储所有用户的邮箱。当删
- 微端服务器
苹果企业签名分发
服务器火山引擎
微端服务器是支撑微端(MicroClient)运行的核心基础设施,需兼顾**资源分发效率**、**低延迟访问**和**动态扩展能力**。以下是微端服务器的详细设计指南,涵盖架构、配置、优化及运维策略:---###**一、微端服务器的核心架构**####**1.分层架构设计**-**前端接入层**-**负载均衡**:Nginx/HAProxy分发请求,支持HTTP/2、WebSocket协议。-**
- 【Maven】资源过滤,纯新手向教程,带你搞懂什么是资源过滤
Pota-to成长日记
mavenandroidjava
一、资源过滤是什么?(就像“填空题”)想象你有一个作业模板,里面有些空格需要填答案,比如:我的名字叫______,今天天气是______。资源过滤的作用:Maven在打包时,能自动用实际值填上这些空格(替换占位符)。例如:将${name}替换成张三,${weather}替换成晴天。二、资源过滤的3个核心步骤(手把手操作)1️⃣定义变量(设置答案)在pom.xml中设置变量,例如:jdbc:mysq
- Ubuntu桌面系统安装VirtualBox教程
Hey! Hey!
ubuntulinux运维
1、下载VirtualBox安装包下载地址:Linux_Downloads–OracleVirtualBox2、将安装包上传至目标服务器3、执行安装命令打开终端,执行如下命令sudodpkg-ivirtualbox-*.deb4.检查VirtualBox是否安装成功virtualbox我安装的时候报了错误,缺少依赖执行了如下命令去安装所缺少的依赖sudoapt--fix-brokeninstall
- Python(面向对象编程)
高育良00003
python开发语言
面向对象编程(Object-OrientedProgramming,简称OOP)是一种通过组织对象来设计程序的编程方法。一.初识类和对象1.1类-class自然界的东西大多以类而分,物以类聚‘1.1.1概念定义了对象的属性和方法,比如犬类里面有个中华田园犬(对象)5岁(属性)了它会吃狗粮(方法)1.1.2创建属于python的类classDog():pass注意俩点:类名首字母大写小括号后有:1.
- jenkins 参数化发布到服务器 publish over ssh、label、Parameterized publishing
wangjun5159
jenkins服务器ssh
前言jenkins参数化发布到服务器jenkins可匹配标签通过一个字符串或者正则表达式来匹配jenkins可通过参数配置发布到服务器,比如打包后,根据参数配置,只发布到某个服务器。设置选项参数新增选项参数,比如填入myParameterName设置使用选项参数在SendfilesorexecutecommandsoverSSH----高级-----Parameterizedpublishing—
- 【docker系列】架构
yunqi1215
Dockerdocker架构容器
Docker是一个开源的容器化平台,其架构设计旨在实现轻量级、高效的应用打包、分发和运行。以下是Docker架构的详细解析:1.Docker核心组件Docker采用客户端-服务器(C/S)架构,主要由以下核心组件构成:1.1Docker客户端(DockerClient)功能:用户通过命令行工具(docker)或API与Docker交互。通信方式:客户端通过RESTAPI与Docker守护进程(Da
- Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified
FearlessBlot
flask运维flaskpython
Pyinstaller打包flask_socketio为exe程序后出现:ValueError:Invalidasync_modespecified一、详细描述问题描述Traceback(mostrecentcalllast):File"app_3.py",line22,inFile"flask_socketio\__init__.py",line186,in__init__File"flask_
- c# 获取redis中所有的value
A_nanda
c#redisbootstrap
在C#中获取Redis中所有键的value需要分步操作,以下是使用StackExchange.Redis库的实现方法:步骤1:安装NuGet包Install-PackageStackExchange.Redis步骤2:代码实现(支持分页扫描和批量操作)usingSystem;usingSystem.Collections.Generic;usingStackExchange.Redis;publi
- 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