- Spring源码-读取XML文件配置信息
一、XML基础DTD、XML阐述、XML的两种文档类型约束和DTD的使用-CSDN博客二、newFile()、getResource()、getResourceAsStream()Java中Class类和ClassLoader类的getResource()和getResourceAsStream()方法的使用_getclassloader().getresourceasstream-CSDN博客三
- Python 库手册:xml.etree.ElementTree 处理 XML 数据模块
xml.etree.ElementTree(简称ElementTree)是Python标准库中用于解析、创建和操作XML数据的模块。它提供了一种轻量、易用的方式来读取、修改和写入XML文件,适用于配置文件处理、数据交换、网络通信等应用场景。常见应用场景:(1)读取XML配置文件并提取参数。(2)修改XML数据结构(如节点属性、内容)。(3)创建新的XML文档并保存。(4)从WebAPI获取的XML
- Spring源码之扫描器(AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner)(三)
夜半听风醉
Spring源码专题
前言Spring容器加载Bean定义信息的两个扫描器:AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner*从命名来看,前者是读取注解声明的bean的定义信息;后者是读取xml声明的bean的定义信息本文将详细介绍这两个扫描器的初始化过程1.准备工作1.初始化一个spring容器对象2.断点调试,跟踪查看扫描器的初始化过程2.源码
- WPF黑科技:XmlDataProvider如何让XML数据“活过来“?
墨夶
C#学习资料wpf科技xml
1.为什么你的WPF界面像"僵尸"?举个:假设你要展示用户列表,但数据来自XML文件:传统方式:读取XML→转换为C#对象→绑定到控件→代码臃肿!XmlDataProvider方案:“像"插拔"一样把XML直接塞进XAML,界面自动刷新——代码量减少90%!”2.XmlDataProvider实战手册2.1基础用法:从XML到界面"秒绑定"步骤1:准备XML数据张三25李四30步骤2:在XAML中
- Spring Bean 生命周期:注册、初始化、注入及后置操作执行顺序
中国lanwp
springjava前端
SpringBean生命周期:注册、初始化、注入及后置操作执行顺序SpringBean的生命周期包含多个阶段,了解这些阶段的执行顺序对于正确使用Spring框架至关重要。以下是完整的执行顺序:1.Bean定义注册阶段配置源读取:Spring读取XML、JavaConfig或组件扫描的配置BeanDefinition注册:将Bean定义注册到BeanDefinitionRegistry对于@Comp
- 【实习总结】C++ 通过pugi::xml库对xml文件进行操作
_清风过耳
实习总结xmlc++开发语言1024程序员节c语言
目录相关背景pugi::xml简概将配置信息写入xml文件读取xml文件中的配置信息相关背景当我们需要将某些配置信息写入项目目录下的xml文件,或者再程序启动时,加载项目下已有的的配置信息(.xml),此时,我们可以使用轻量级C++XML处理库pugi::xml,来对xml文件进行操作。pugi::xml简概首先我们通过如下链接,下载pugi::xml源码的压缩包项目首页-pugixml:Ligh
- C# 读取xml数据和vaule
老刘忙Giser
C#
C#读取xml数据和vaule;usingSystem.Xml;XmlTextReaderreader=newXmlTextReader("C://test.xml");reader.Read();stringcontent;while(reader.Read()){reader.MoveToContent();if(reader.NodeType==System.Xml.XmlNodeType.
- Qt 用XML流,QXmlStreamReader解析读取xml
刺客xs
xml
QXmlStreamReader是应用程序代码自身来驱动循环,在需要的时候可以从读取器中一个接一个地拉出记号。这个是通过调用readNext()函数实现。它可以读取下一个记号,然后返回一个记号类型;它由枚举量QXmlStreamReader::TokenType定义,所有取值如下表格所示。然后使用isStartElement()和text()等函数来判断这个记号是否包含需要的信息。常量描述QXml
- Qt文件:XML文件
TNTLWT
#Qtqtxml数据库
XML文件1.XML文件结构1.1基本结构1.2XML格式规则1.3XMLvsHTML2.XML文件操作2.1DOM方式(QDomDocument)读取XML写入XML2.2SAX方式(QXmlStreamReader/QXmlStreamWriter)读取XML写入XML2.3对比分析3.使用场景3.1存储配置信息3.2数据交换与存储3.3界面布局与资源定义3.4网络通信与API交互3.5插件与
- 第23章,python3 操作各种文件详解,20个例子
韩公子的Linux大集市
Python3数据分析pythonlinux开发语言
文章目录Python3操作各种文件详解(20个示例)1.读取文本文件2.逐行读取文件3.写入文本文件4.追加写入文件5.读取CSV文件6.写入CSV文件7.使用DictReader处理CSV8.使用DictWriter写入CSV9.读取JSON文件10.写入JSON文件11.读取XML文件12.写入XML文件13.复制文件14.移动/重命名文件15.删除文件16.检查文件是否存在17.获取文件信息
- Java反序列化触发方式
杜子腾1
Java安全java网络安全
反序列化触发点扩展ObjectInputStream.readObject//流转化为ObjectObjectInputStream.readUnshared//流转化为ObjectXMLDecoder.readObject//读取xml转化为ObjectYaml.load//yaml字符串转ObjectXStream.fromXML//XStream用于JavaObject与xml相互转化Obj
- Qt 处理 XML 数据
小刘同学++
qtqtxml
在Qt中,处理XML数据通常使用Qt提供的QDomDocument、QXmlStreamReader和QXmlStreamWriter类。这些类可以帮助你读取、修改和写入XML数据。1.使用QDomDocument处理XMLQDomDocument提供了对XML文档的DOM(DocumentObjectModel)结构的访问方式。这是一种树形结构,适用于对XML进行修改。1.1.读取XML文件#i
- #学习笔记#使用dom4j读取xml文件得到document对象
一段对白
xmljavadomjavascript
使用dom4j读取xml文件得到document对象先新建一个xml文件时间简史霍金75Java从入门到入土<某某某<9.9//books.javapackagelianxi01;importjava.math.BigDecimal;publicclassbooks{privateStringsn;//防止类中的数据成员,在类的定义之外被修改privateStringname;priv
- 【Python】解析 XML
茉菇
Pythonpythonxml
1、Python对XML的解析1.1SAX(simpleAPIforXML)SAX解析器使用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。xml.sax模块牺牲了便捷性来换取速度和内存占用。事件驱动指一种基于回调(callback)机制的程序运行方法。利用SAX解析XML文档牵涉到两个部分:解析器:负责读取XML文档,并向事件处理器发送事件,如元素
- python读取xml文件
懒大王爱吃狼
pythonpythonxmljava网络Python基础pycharm开发语言
在Python中读取XML文件可以使用内置的xml.etree.ElementTree模块,它提供了一个轻量级且易于使用的API来解析和创建XML数据。下面是一个基本的示例,展示如何读取XML文件并提取数据。假设我们有一个名为example.xml的XML文件,内容如下:
[email protected]@example.com以下
- tinyxml创建、写入和读取
@Mr_LiuYang
写过的小程序C语言tinyxmlxml创建添加xml读取
最近在集成小程序,涉及到使用tinyxml类,在这里记录本次用于输出程序执行状态的代码,包括创建、添加信息、读取信息,exportXmlParam用于创建输出,addXmlevent用于主程序部分实时显示进程信息,ReadXmlParam用于读取xml文件。(1)创建xml文件,因为本次要求输入数据在哪,输出结果文件必须在哪,故这里采用name表示输入数据的绝对地址参数voidCXMLReadfi
- java后端研发经典面试题总结二
Netty711
java面试大数据redisspring
四种读取XML文件读取的办法1.DOM生成和解析XML文档为XML文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构。优点:整个文档树在内存中,便于操作;支持删除,修改,重新排列等。缺点:把整个文档调入内存,存在很多无用的节点,浪费了时间和空间。2.SAX为解决DOM1、边读边解析,应用于大型XML文档2、只支持读3、访问效率低4、顺序访问3.DOM4J生成和解析XM
- nodejs中xmldom的使用方法
jedi-knight
webjavascript前端node.js
xmldom的使用方法xmldom是nodejs下读取xml文件的优秀模块。使用npm安装,命令行如下npminstallxmldom使用步骤:(1)将字符串转换为可操作的对象const{DOMParser}=require('xmldom')vardoc=newDOMParser().parseFromString(xmlData.toString(),//这里是xml字符串,可以从文件中读取'
- r语言 xml html,R语言读取XML文件-xml文件
bean.Xu
r语言xmlhtml
XML文件简介在计算机领域,XML(extensiblemarkuplanguage)指的是可扩展标记语言,类似于HTML,它设计的宗旨是传输数据,而不是显示数据,所以这也是它和HTML的一个明显的差别。另外一个差别是XML的标签没有被预定义,我们可以根据自己的需要自行设计标签名字,所以具有自我描述性。一个具体的例子以上就是一个XML的例子,它拥有发送者和接受者,标题,内容等信息,所以自我描述非常
- Python基础—用python读取xml文件!
小尤笔记
pythonxml开发语言
读取XML文件在Python中是一个常见的任务,通常可以使用内置的xml.etree.ElementTree模块来完成。这个模块提供了简单而高效的XML解析和生成功能。下面是一个详细的代码示例和讲解,展示了如何使用xml.etree.ElementTree来读取XML文件。代码示例假设我们有一个名为example.xml的XML文件,内容如下:120081411004201159900我们的目标是
- 【C++开发中XML 文件的妙用】
勾魂凉皮
c++xml开发语言
在C++中,XML(可扩展标记语言)文件通常用于存储配置数据、应用程序设置、数据交换格式等。由于其结构化和可读性强的特点,XML文件在配置管理、序列化、跨平台数据交换以及软件国际化等方面有着广泛的应用。XML文件的妙用配置管理:XML文件经常被用来存储应用程序的配置。可以动态读取XML文件来配置应用程序的行为,而无需重新编译代码。数据交换格式:XML是跨平台、跨语言的数据交换格式。许多网络协议和数
- Java读取xml工具类
无了_wule
工具类xmljavajvm
xml工具类自定义注解IXmlimportjava.lang.annotation.*;/***@ClassName:IXml*@Description:注意:当前判断新建节点映射对象是根据类成员变量所有标注当前注解的字段值都不为null,*所以:*一:所有nodeName都必须存在于xml文件中(区分大小写)*二:所有相同node节点和attributeName都必须相同,个数都保持一致*@1"
- Android 读取 XML 文件之 XmlPullParser 编码模板
我命由我12345
Android-简化编程xml安卓androidjavaandroid-studio
一、XmlPullParser概述XmlPullParser是Android平台上用于解析XML数据的一个接口,它提供了更高效的方式来读取XML文档XmlPullParser不会一次性将整个XML文档加载到内存中,而是采用流式读取的方式,即边读取边解析,这样可以大大减少对内存的使用,特别适合处理大型XML文件二、XmlPullParser基本使用1、使用步骤获取解析器实例XmlPullParser
- 第二十六章 定制SAX解析器的使用方式
Cache技术分享
第二十六章定制SAX解析器的使用方式每当InterSystemsIRIS读取XML文档时,它都会使用InterSystemsIRISSAX(SimpleAPIForXML)解析器。本章介绍用于控制系统间IRISSAX解析器的选项。关于IRISSAX解析器每当InterSystemsIRIS读取XML文档时,都会使用InterSystemsIRISSAX解析器。它是一个事件驱动的XML解析器,读取X
- 使用Python将xml标注文件转换为coco json格式
tangjunjun-owen
toolspythonxmljson
文章目录前言一、读取xml文件二、获取文件路径模块三、XML转COCOJSON模块四、主程序总结附:完整代码前言在计算机视觉领域,特别是目标检测任务中,不同的数据集采用了不同的标注格式。PascalVOC数据集使用XML文件进行目标检测的标注,而MicrosoftCOCO数据集则采用JSON格式。为了方便模型训练,我们经常需要将XML格式的数据转换成JSON格式。本文将详细介绍如何用Python实
- 深入探索Pandas读写XML文件的完整指南与实战read_xml、to_xml【第79篇—读写XML文件】
一见已难忘的申公豹
pandasxml数据交换格式read_xmlto_xml
深入探索Pandas读写XML文件的完整指南与实战read_xml、to_xmlXML(eXtensibleMarkupLanguage)是一种常见的数据交换格式,广泛应用于各种应用程序和领域。在数据处理中,Pandas是一个强大的工具,它提供了read_xml和to_xml两个方法,使得读取和写入XML文件变得简单而直观。读取XML文件-read_xml方法参数说明:1.path(必需)指定XM
- Qt使用单例模式读取xml文件
海棠半载
Qtqt单例模式xml
Qt使用单例模式读取xml文件一、单例模式介绍1、什么是单例模式2、为什么使用单例模式3、什么情况下使用单例模式4、使用单例模式需要注意哪些问题线程安全5、单例模式的类型6、单例类的特点2、单例模式的实现2.1懒汉式2.2饿汉式一、单例模式介绍1、什么是单例模式单例模式是指在整个系统生命周期内,保证一个类只能产生一个实例,确保该类的唯一性。2、为什么使用单例模式1、节省资源。一个类只有一个实例,不
- Python单元测试之unittest
601eff46fb64
目录类容unittest单元测试,集成测试,功能测试Unittest的重要组成部分断言的使用测试用例方法的命名规则执行测试用例原始的测试报告和第三方的html格式报告读取xml文件数据进行单元测试读取csv文件数据进行单元测试一、单元测试、集成测试、功能测试单元测试颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可测试单元进行检查和验证集成测试介于单元
- 请你介绍下ioc的工作流程
我是一只代码狗
javaspringjavaspring
1.读取xml定义的bean信息或者注解定义的bean信息2.然后解析bean信息放入BeanDefinition中3.然后把BeanDefinition放到ioc容器里面,也就是放到一个map中,完成ioc的初始化4.在获取对象的时候可以通过@Autowired注解,或者通过BeanFactory.getBean()方法获取,也就是从ioc容器里面去拿
- VTK从内存中读取XML格式文件
混元太极马保国
vtk
vtkSmartPointerreader=vtkSmartPointer::New();reader->SetReadFromInputString(true);reader->SetInputString(content);//content为字符串形式的数据reader->Update();继承于vtkXMLReader的类都可以将内存中的数据直接进行读取。
- 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