- QML < 画布元素>之画布绘制
ly_zszcyx
学习QmlQt
绘制四个色块,使用鼠标选择颜色,按下鼠标,在画布上随意绘制绘制四个色块:当鼠标位置改变时,canvas的requestPaint函数用于请求重新绘制画布。函数不会立即触发重绘,而是向事件循环发送一个信号,表明画布需要更新。当事件进入下一次有机会处理时。它会调用onPaint回调函数来执行实际的绘图操作矩形框代码:importQtQuick2.15Item{id:rootpropertycolors
- Jenkins报错:Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: f754e8a4-0218-4c28-899
longze_7
jenkins运维
Also:org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId:f754e8a4-0218-4c28-8997-119f0f683ec5groovy.lang.MissingPropertyException:Nosuchproperty:dockerforclass:groovy.lang.Bindingatgroovy.lang.
- 国产系统中Firefox ESR52.3.0低版本火狐浏览器vue2项目打包后兼容问题总结
tianxin8901
vuefirefoxvue
问题一:浏览器报错提示如下:FailedtoresolveasynccomponentReason:SyntaxError:invalidpropertyid问题分析:根据报错的指向的文件,一步一步分析,发现问题所在是beforeCreate生命周期中引用的组件过于深。我的文件从父到子文件,依次是gatewary.vue-->pagehome.vue->gatelayout.vue->module
- nuxt vue websocket接入
maybe啊
vue.jswebsocket前端
import{Component,Vue}from"vue-property-decorator";importAxiosfrom'axios'//当前长链接的实例exportletwsInstance:WebSocket|null=nullexporttypeStateType='connecting'|'connected'|'closing'|'closed'//检查长链接状态exportf
- Unity中自定义一个EditorWindow窗体并显示诸如list<GameObject>数据
dzj2021
unity游戏引擎
前言:自定义窗体的效果一、显示一个你自定义的窗口原理1、基类:EditorWindow2、组成:(1)定义普通变量。(2)定义系列化的对象和属性。【SerializedObject】、【SerializedProperty】(3)初始化方法和菜单定制//Addmenunamed"MyWindow"totheWindowmenu[MenuItem("Window/MyWindow")]staticv
- Spring setter注入和构造器注入引用数据类型和基本数据类型包括,集合类型的注入
ZZZZJava
springjava后端
setter简单类型注入用valueproperty标签:设置注入属性name属性:设置注入的属性名,实际是set方法对应的名称value属性:设置注入简单类型数据值setter引用类型注入用refproperty标签:设置注入属性name属性:设置注入的属性名,实际是set方法对应的名称ref属性:设置注入引用类型bean的id或name构造器简单类型注入用valueconstructor-ar
- Spring-setter注入和构造器注入
江湖大侠叶开花
SSMspringjavamybatis
使用setter方法注入简单类型和引用类型先给类中的属性创建setter方法简单类型(基本数据类型和String):在xml文件中使用property标签,name,value属性引用类型:在xml文件中使用property标签,name,ref属性name:对应BookServiceImpl中的属性名ref:对应配置文件中注册的bean的id使用构造器注入简单类型和引用类型先给类创建对应的构造方
- Spring Boot 条件注解:@ConditionalOnProperty 完全解析
web18285997089
面试学习路线阿里巴巴springbootjava后端
在SpringBoot项目中,有时候我们希望根据配置文件中的某个属性值来决定是否启用某个功能或加载某个组件。此时,@ConditionalOnProperty注解就可以发挥作用。它通过配置文件的属性值控制Bean或配置类的加载,使得我们的程序更具灵活性。本文将详细介绍@ConditionalOnProperty的用法,并通过功能开关和环境配置两个实际场景来展示它的强大之处。1.@Condition
- 【WPF】Slider滑动方法(INotifyPropertyChanged、ValueChanged )响应速度对比分析
wangnaisheng
WPFC#c#wpf
一、Slider基础用法在XAML中添加一个Slider控件,并设置其基本属性:Maximum="100"Value="50"Width="200"Height="30"HorizontalAlignment="Left"VerticalAlignment="Top"TickFrequency="10"TickPlacement="BottomRight"IsSnapToTickEnabled="
- Vue数据响应式原理
tuoluoo
vue学习笔记vue.js前端javascript
前言Vue是一个结构的框架,也就是数据层、视图层、数据-视图层;响应式的原理就是实现当数据更新时,视图层也要相应的更新响应式实现基于发布订阅模式和数据劫持实现1.发布订阅模式:vue使用发布订阅模式来实现数据变动的通知和更新2.数据劫持:vue通过object.defineProperty对数据进行劫持Vue2响应式原理基于js的object.defineProperty()方法,该方法可将传入的
- 手写tomcat+servlet,浅析原理
小新的蜡笔不见了
Tomcattomactservlet
手写tomcat+servlet,浅析原理概念逻辑手写实现便于管理我就在资源文件夹新建property.properties文件,可以设置端口新建servlet之前可定要先定义Request和Response新建Myservlet,在这之前写一个servlet吧,毕竟有些方法每次都要用需要用到的工具类重头戏回顾最近回头看了servlet,写了一个简易版的tomcat+servlet。代码都上传到了
- 华为OD技术面试真题 - 技术面】- 前端八股文真题题库(8)
算法大师
华为od面试前端华为OD机试E卷javascriptjavapython
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.vue中key的作用?为什么不能用index作为key作用为什么不能用index作为key示例说明2.Vue2和Vue3?defineProperty和Proxy?Vue2的`Object.defineProperty()`Vue3的`Proxy`比较和应用场景
- 第三章:组件开发实战 - 第三节 - Tailwind CSS 动画和过渡效果
在现代Web应用中,合理使用动画和过渡效果可以大大提升用户体验。TailwindCSS提供了丰富的动画和过渡工具类,让我们能够轻松实现各种交互效果。本节将详细介绍如何在项目中运用这些特性。过渡效果基础基础过渡属性TailwindCSS提供了几个核心的过渡工具类:悬浮上移效果核心类说明:transition-{property}:指定要添加过渡效果的属性transition-all:所有属性tran
- QT 中的元对象系统(三):QObject深入理解
流星雨爱编程
#Qt#C++进阶qt开发语言c++
目录1.简介2.特性2.1.对象树与内存管理2.2.信号与槽机制2.3.事件处理2.4.属性系统2.4.1.Q_PROPERTY配置的属性2.4.2.动态属性2.4.3.实现原理2.5.国际化支持2.6.定时器支持3.类设计(q和d指针)4.总结1.简介QObject这个class是QT对象模型的核心,它是所有Qt对象的基类。它为对象间通信(信号与槽机制)、事件处理、定时器支持以及对象树管理等功能
- 【笔记】记一次easyExcel中注解ExcelProperty映射字段赋值无效问题
Root0624
java笔记开发语言
背景最近在开发一个导入excel文件解析数据并入库的功能,导入过程中出现一个BUG:后端映射实体字段pType没有被赋值,但是导入的excel源文件是有数据。定位问题经过debug源码发现最终创建对象并赋值使用的是net.sf.cglib.beans.BeanMap类中的create方法,BeanMap中创建实体对象并赋值使用类中字段的setter方法,其中pType字段使用的Setter方法为s
- vue2+el-table 封装表格组件,基本够用了,带自动滚动
mokn
javascriptvue.js前端
标题@[TOC](vue2+el-mentUI封装的多功能表格组件,带自动滚动)欢迎使用Markdown编辑器表格组件页面//添加选择表格功能//判断是否显示单元格按钮{{scope.row[scope.column.property]}}重置{{scope.row[scope.column.property]}}exportdefault{name:"CustomTable",props:{//
- 17. 示例:用assert property检查FIFO空满标志冲突
啄缘之间
UVM学习计划表学习svveriloguvmfpga开发
文章目录前言一、概念解析与通俗理解二、实现方式与代码示例1.核心断言逻辑2.扩展场景(时序对齐)3.使用`assertproperty`三、应用场景与示例1.验证阶段2.实际案例3.`assertproperty`验证阶段四、常见误区与规避方法1.忽略复位条件2.异步信号未同步3.时钟域的同步五、练习任务与讲解任务1:设计FIFO空满保护断言任务2:`assertproperty`检查FIFO的空
- Python基础教程 学习笔记 第九章 魔法方法,特性,迭代器
只想开始
python
文章目录一,构造函数:\_\_init\_\_二,重写普通方法和特殊的构造函数拓展三,元素访问注意五,函数property5.1property特性5.2静态方法和类方法5.3\_\_getattr__、\_\_setattr__等方法注意六,迭代器iter6.1迭代器协议七,生成器7.1简单生成器7.2递归式生成器注意7.3通用生成器7.4生成器的方法拓展:7.5模拟生成器一,构造函数:__in
- Qt动态属性
激昂~逐流
Qtqt开发语言
一.定义Qt动态属性是一种在运行时为对象添加属性的方法,这些属性并不在对象的类定义中声明,而是在需要的时候动态添加。动态属性可以让开发者在不修改类定义的情况下为对象添加额外的数据或功能,从而实现更灵活的编程。在Qt中,可以使用setProperty()和property()方法来设置和获取动态属性。通过调用setProperty()方法可以为对象设置一个动态属性,该方法接受两个参数,第一个参数是属
- 深入解析 Vue3 核心架构与实战范式:从响应式原理到 Composition API 设计哲学
嘉图明
架构前端框架
引言:框架演进的必然选择在2020年发布的Vue3并非简单的版本迭代,而是对前端工程化痛点的系统性解决方案。本文将深入剖析其架构设计,结合TypeScript类型系统和ChromeDevTools性能分析工具,揭示Vue3如何通过底层重构实现开发体验与运行效率的双重突破。一、响应式系统的量子跃迁:Proxy的颠覆性设计1.1从Object.defineProperty到Proxy的范式转移//Vu
- hasOwnProperty是什么?【JavaScript方法】
幸运小圣
JavaScriptjavascript开发语言
hasOwnPropertyhasOwnProperty是什么?用于判断一个对象是否包含特定的自身属性。它只会返回对象自身具有的属性,而不会返回从原型链上继承的属性。obj.hasOwnProperty(prop)obj是需要检查的对象。prop是需要检查是否存在的属性名(字符串)。返回值:如果对象obj具有名为prop的自身属性,则返回true。否则返回false。constobj={name:
- Springboot应用json数据传给前端首字母大写变小写的问题
珠峰日记
css3cssspringjqueryhtml
对接.net数据,属性首字母大写传给前端后自动转成了小写。解决思路网上有三种:1)如果没有使用fastjson(阿里巴巴出品),使用@JsonProperty("XXXX")的注解方式可以解决问题,XXXX就是转换成Json的属性名,但注意,只有放在getter上才是有效的,直接在属性上加没效果.(这说明spring默认的jackson类库处理是基于访问器。2)如果使用了fastjson,就用@J
- ConditionalOnProperty注解使用介绍、应用场景以及示例代码
小猿、
springbootspringspringspringboot
概述@ConditionalOnProperty是SpringFramework中的一个条件注解,用于根据配置文件中的属性值来决定是否创建特定的bean或者是否启用特定的配置。创建某个bean或者执行某个配置。它的工作方式类似于SpringBoot的application.properties或application.yml中的属性配置。当指定的属性在配置文件中存在且值符合条件时,相关的配置才会生
- c# 不可访问 因为它受保护级别限制
CptainLee
c#c#不可访问因为它受保护级别限制
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacePropertyText{classProgram{staticvoidMain(string[]args){classTextct=newclassText("李刚");Console.WriteLine(ct.name);
- 添加响应式数据
遇见~未来
Vue.jsvue.js前端javascript
1.响应式的基本概念定义:响应式是指当数据(data)发生变化时,页面会自动更新和刷新。类似于Excel中单元格数据联动更新的机制。2.Vue响应式的实现原理数据劫持:Vue通过Object.defineProperty方法,将data中的数据存储到_data中。通过setter和getter方法,拦截对数据的读取和修改操作。当数据被修改时,setter方法会被触发,不仅更新数据,还会触发页面的重
- 武汉前端面试(1)
Nueuis
前端
面一:vue2和vue3的响应式原理比较?vue2通过object.defineProperty对对象的每个属性进行劫持,会遍历对象的每一个属性,使用getter和setter,只能监听部分方法vue3是基于Proxy代理整个对象,不是逐个属性监听,可以监听新增属性和删除属性,使用reactive函数返回通过proxy创建的代理对象,vue3使用proxy的优点:支持新增和删除属性的响应式可以监听
- JavaWeb——CSS
Clrove.11
JavaWebcss前端
一、什么是CSSCSS(CascadingStyleSheet):层叠样式表,是一种用于描述网页内容外观和样式的语言,主要用于控制网页的布局、颜色、字体、间距、动画等视觉效果。CSS基本语法:CSS基本语法十分简单,基本由以下几个部分组成:selector{property:value;property:value;...}其中,selector表示要设置样式的HTML元素,property表示要
- 什么是 WPF 中的依赖属性?有什么作用?
九鼎科技-Leo
WPFC#.Netwpfc#windows.net
依赖属性(DependencyProperty)是WPF的一个核心概念,它为传统的.NET属性提供了增强功能,支持绑定、样式、动画和默认值等功能。通过依赖属性,WPF提供了一种灵活的数据驱动的方式来处理UI属性。1.什么是依赖属性?依赖属性是一种特殊的属性,它依赖于WPF的DependencyObject和DependencyProperty类来实现。它主要用于WPF控件的属性系统,支持以下高级功
- sql server 用户信息查询
woshilys
sqlserversqlserver
查询检查SQL用户密码策略信息select*fromsys.sysloginsSELECTname,is_policy_checked,is_expiration_checked,LOGINPROPERTY(name,'IsMustChange')ASIsMustChange,LOGINPROPERTY(name,'IsLocked')ASIsLocked,LOGINPROPERTY(name,'
- ApplicationContext 的启动流程是怎样的?
冰糖心书房
2025Java面试系列SpringFrameworkspring
ApplicationContext是SpringIoC容器的核心接口,它提供了配置、访问和管理Bean的功能。ApplicationContext的启动流程可以细分为以下几个关键步骤,这些步骤主要在AbstractApplicationContext类的refresh()方法中实现:1.prepareRefresh()-准备刷新:设置启动时间戳。设置容器的激活状态。初始化属性源(property
- 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