- 探索PyRDP:远程桌面协议的瑞士军刀
彭宏彬
探索PyRDP:远程桌面协议的瑞士军刀pyrdpRDPmonster-in-the-middle(mitm)andlibraryforPythonwiththeabilitytowatchconnectionsliveorafterthefact项目地址:https://gitcode.com/gh_mirrors/py/pyrdp在网络安全领域,攻防两端的对决不断推动着工具的创新。今天,让我们聚
- SQL Server 等待数据库引擎恢复句柄失败
y523648
数据库服务器运维
用管理员身份运行PowerShell,模拟扇区大小为4KbNew-ItemProperty-Path"HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device"-Name"ForcedPhysicalSectorSizeInBytes"-PropertyTypeMultiString-Force-Value"*4095"验
- CloudFormation 实现 GitHub Actions OIDC 与 AWS ECR 的安全集成(支持多组织配置)
ivwdcwso
运维与云原生githubawsecrCI/CDOIDC流水线
、##引言:多组织场景下的安全挑战在企业环境中,经常需要为不同的GitHub组织(如开发组织dp和测试组织test)配置不同的访问权限。本文将详细介绍如何通过AWSCloudFormation模板实现灵活的OIDC集成,支持多GitHub组织的安全访问控制。第一部分:多组织架构设计安全认证流程(多组织场景)
- 安装wordpress报错(完美解决)
光头程序员em
wordpress报错
#错误1#YourserverisrunningPHPversion7.2.1butWordPress6.7.1requiresatleast7.2.24.这是因为wordpress6.7.1需要7.2.24及以上版本,解决方法就是下载低版本wordpress或者升级高版本的php运行环境#错误2#不能选择数据库可以连接到数据库服务器(这说明您的用户名和密码正确),但是不能选择wordpress数
- Qt界面编程(五)
明阿明
qtlinux
一、Qt的网络通信使用网络通信模块前,要在.pro文件中添加network模块。QUdpScoket类是Qt对UDP协议的封装:1、创建QUdpSocket对象2、绑定IP的端口号3、发送数据:qint64writeDatagram(constchar*data,qint64len,constQHostAddress&host,quint16port);data:待发送数据的首地址len:待发送数
- QUdpScoket 组播实现及其中的踩坑点记录
老猿啊老猿
Qtc++qtudp网络
QUdpScoket组播实现及其中的踩坑点记录QUdpSocket要想组播需要打开MulticastTtlOption配置项,否则无法生效,亲身踩坑经历m_socket=newQUdpSocket(this);m_socket->setSocketOption(QAbstractSocket::MulticastTtlOption,1);确定一个组播地址,并且要在socket绑定成功进入Bound
- opencv —— floodFill 漫水填充法 实现证件照换背景
老干妈就泡面
opencv人工智能计算机视觉
漫水填充:floodFill函数简单来说,漫水填充就是自动选中与种子像素相连的区域,利用指定颜色进行区域颜色填充。Windows画图工具中的油漆桶功能和Photoshop的魔法棒选择工具,都是漫水填充的改进和延伸。//第一个版本intfloodFill(InputOutputArrayimage,PointseedPoint,ScalarnewVal,Rect*rect=0,ScalarloDif
- OpenAI-Compatible Edge-TTS API 使用教程
马琥承
OpenAI-CompatibleEdge-TTSAPI使用教程openai-edge-ttsFree,high-qualitytext-to-speechAPIendpointtoreplaceOpenAI,Azure,orElevenLabs项目地址:https://gitcode.com/gh_mirrors/op/openai-edge-tts1.项目介绍本项目提供了一个本地化的、与Ope
- 开源项目安装与配置指南:OpenAI-Compatible Edge-TTS API
霍虹情Victorious
开源项目安装与配置指南:OpenAI-CompatibleEdge-TTSAPIopenai-edge-ttsFree,high-qualitytext-to-speechAPIendpointtoreplaceOpenAI,Azure,orElevenLabs项目地址:https://gitcode.com/gh_mirrors/op/openai-edge-tts1.项目基础介绍OpenAI-
- 使用datax进行mysql的表恢复
是桃萌萌鸭~
mysql数据库
DataXDataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括MySQL、SQLServer、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS等各种异构数据源之间高效的数据同步功能。FeaturesDataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上Dat
- Oracle 导入导出 dmp 数据文件实战
dazhong2012
数据库oracle数据库
一、DMP文件基础知识1.DMP文件定义DMP(DataPumpDumpFile)是Oracle数据库专用的二进制格式文件,由expdp/impdp或旧版exp/imp工具生成。它包含数据库对象的元数据(表结构、索引等)和实际数据,是数据备份、迁移和恢复的核心载体。2.DMP文件结构文件头:记录Oracle版本、字符集、导出时间等元信息。数据段:存储表数据,按数据块组织,支持并行读写。索引段:加速
- Leetcode 3599. Partition Array to Minimize XOR
Espresso Macchiato
leetcode笔记leetcode3599leetcodemediumleetcode周赛456动态规划
Leetcode3599.PartitionArraytoMinimizeXOR1.解题思路2.代码实现题目链接:3599.PartitionArraytoMinimizeXOR1.解题思路这一题就是一个动态规划的思路。我们定义动态规划的状态函数dp(idx,k)将数组arr[idx:]切分为kkk个子串之后能够获得的最大XOR的最小值。此时,我们就能有状态转移函数:dp(i,k)=minj=i+
- 重排利器:行列式点过程(DPP)在推荐系统中的应用
Jay Kay
推荐算法数学建模推荐算法
在推荐系统的重排阶段,我们常面临结果同质化问题——精排结果相似物料扎堆,导致用户体验单调。行列式点过程(DeterminantalPointProcesses,DPP)通过数学建模相关性与多样性的平衡,成为解决该问题的经典方案。一、DPP的核心思想DPP将推荐列表视为一个点过程,其核心是计算子集出现的概率。给定候选集(Z)(精排输出的Top-N物料),DPP定义子集(Y\subseteqZ)出现的
- C++封装python调用库
技术大白
c++开发语言
传结构体中间用空字符串问题使用callback传输结构体,中间出现\0字符,使用std::vector类型voidPyProcessInterface::ProcessContent(constchar*buff,UINT32size,boolfromSelf){if(callback){std::vectordataVec(buff,buff+size);callback(std::move(d
- C#区块链共识的3大必杀技:PoW、PoS、DPoS谁才是代码界的“链主”?
墨瑾轩
一起学学C#【二】c#区块链开发语言
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣**3大必杀技,让你的代码成为“链主”**必杀技1:工作量证明(PoW)——“算力擂台赛”问题:为什么比特币的“矿工”要疯狂算哈希?答案:因为他们在参与“算力擂台赛”!PoW核心逻辑:
- pos共识机制_共识机制:权益证明机制(POS)
weixin_39737224
pos共识机制
原标题:共识机制:权益证明机制(POS)在区块链系统框架中,共识层提供了全网对交易和区块的共识,是接在区块链中产生信任的方法和机制。目前常用的共识机制有三种:ProofofWork工作量证明,简称PoW;ProofofStaked权益证明,简称Pos;DelegatedProofofStake授权股权证明,简称DPoS。其中,工作量证明PoW是比特币所用的共识机制,也是目前使用最广泛和成熟的共识机
- 星际争霸多智能体挑战赛(SMAC)
资源存储库
多智能体强化学习人工智能
目录TheStarCraftMulti-AgentChallenge星际争霸多智能体挑战赛Abstract摘要1Introduction1引言2RelatedWork2相关工作3Multi-AgentReinforcementLearning3多智能体强化学习Dec-POMDPs12-POMDPs(十二月-POMDP)Centralisedtrainingwithdecentralisedexec
- IDP单点登录流程
就叫飞六吧
java
单点登录(SSO,SingleSign-On)的核心是通过**统一的身份认证中心(IdentityProvider,IdP)**管理用户身份,避免用户在多个系统中重复登录。以下是基于IdP的认证思路及典型流程:一、核心角色IdentityProvider(IdP)负责认证用户身份(如输入用户名密码、短信验证、OAuth授权等)。颁发令牌(如SAML断言、JWT、OAuthToken)给服务提供方。
- 第 3 章:神经网络如何学习
鱼摆摆拜拜
神经网络学习人工智能
第3章:神经网络如何学习在第二章中,我们详细了解了神经网络的静态结构:由神经元组成的层,以及连接它们的权重和偏置。现在,我们将进入整个教程最核心的部分:神经网络是如何从数据中"学习"的?这个学习过程是一个动态的、不断调整自身参数以求更佳预测的过程。我们将通过四个关键概念来揭示这个秘密:前向传播(ForwardPropagation):数据如何通过网络产生一个预测?损失函数(LossFunction
- Android的Audio子系统
雷古拉斯
移动操作系统之Android
Android边录边播应用AP(ApplicationProcessor主处理器)DSP(Codec)BP(BasebandProcessor基带处理器,猫)一、AudioTrack播放基本流程1.初始化newAudioTrack完成通路创建,也在MixerThread线程中创建Track。getOutput(以及openOutput)frameworks/av/media/libmedia/Au
- 【网络安全】网络安全中的离散数学
flyair_China
安全架构
一、离散数学核心知识点与网络安全映射1.数论(NumberTheory)知识点安全应用场景实例说明质因数分解RSA公钥加密大整数分解难题(2048位密钥需数万年破解)模运算Diffie-Hellman密钥交换利用(gamodp)实现安全协商欧拉定理RSA加密/解密me*d≡m(modn)保障解密还原中国剩余定理高效解密优化RSA-CRT加速解密运算达70%2.代数结构(AlgebraicStruc
- 多云环境密钥硬核防护:KDPS如何实现千万级密钥生命周期管理?
安 当 加 密
安全
当GitHub2023年报告显示63%的数据泄露源自测试环境时,某证券公司因测试机密钥硬编码导致量化模型被盗的教训,揭示了多云时代的安全真相:分散的密钥管理=为黑客铺就黄金路。上海安当KDPS关键数据保护系统,以国密认证的KSP密钥中台+HSM硬件加密机为核心,构建千万级密钥的“中央管控引擎”。本文从三大维度拆解其硬核能力:一、密钥管理“铁三角”:集中化、自动化、合规化能力维度传统方案痛点KDPS
- 2013年EI 新目录中新增的期刊
h_liuage
投稿期刊论文投稿
**【转载】2013年EI新目录中新增的期刊**斜体样式3DResearch2092673020926731ACSSustainableChemistryandEngineering21680485ActaInformatica0001590314320525AdvancesinOpticsandPhotonics19438206AdvancesinRadioScience168499651684
- 动态规划之01背包问题
蓝澈1121
数据结构与算法动态规划算法java
动态规划算法动态规划算法介绍动态规划(DynamicProgramming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法动态规划算法与分治法类似,其基本思想也是将待解决问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解与分治法不同的是,适合于动态规划求解的问题。经分解得到子问题往往不是互相独立的。(即下一个子阶段的求解是建立在上一个子阶段的基
- 《网络攻防技术》《数据分析与挖掘》《网络体系结构与安全防护》这三个研究领域就业如何?
扣棣编程
其他网络数据分析安全
这几个研究领域都是当前信息技术领域的热点方向,就业前景总体来说都非常不错,但各有侧重和特点。我来帮你详细分析一下:1.网络攻防技术就业前景:非常火热且持续增长。核心方向:渗透测试、漏洞挖掘与分析、恶意软件分析、入侵检测/防御、应急响应、威胁情报、安全审计、红蓝对抗等。市场需求:极高。数字化转型深入、网络攻击日益频繁和复杂(勒索软件、APT攻击、供应链攻击等)、数据安全与隐私保护法规(如GDPR、中
- 力扣 Hot 100 刷题记录 - LRU 缓存
a李兆洋
leetcode缓存算法
力扣Hot100刷题记录-LRU缓存题目描述LRU缓存是力扣Hot100中的一道经典题目,题目要求如下:请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity):以正整数作为容量capacity初始化LRU缓存。intget(intkey):如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(int
- C#使用ExcelDataReader高效读取excel文件写入数据库
香煎三文鱼
.netcore.Net6C#C#读取excel
分享一个库ExcelDataReader,它专注读取、支持.xls/.xlsx、内存优化。首先安装NuGet包dotnetaddpackageExcelDataReaderdotnetaddpackageSystem.Text.Encoding.CodePages编码内存优化:每次仅读取一行,适合处理百万级数据。类型安全方法:可用GetString(0)、GetDouble(1)等强类型方法(需确
- redis-cli 命令详解
戴国进
redisLuaredis-cli
命令使用:redis-cli[OPTIONS][cmd[arg[arg...]]]选项说明:-hServerhostname(default:127.0.0.1).ip地址-pServerport(default:6379).服务器端口号-sServersocket(overrideshostnameandport).-aPasswordtousewhenconnectingtotheserver
- kde截图工具报错
翻滚吧键盘
openSUSE服务器运维
Anerroroccurredwhiletakingascreenshot.KWinscreenshotrequestfailed:TheprocessisnotauthorizedtotakeascreenshotPotentiallyrelevantinformation:-Method:CaptureScreen-Methodspecificarguments:"eDP-2"好的,感谢您提供
- tcpdump 抓取icmp数据包
洪大宇
Linuxtcpdump网络linux
#eth1可以替换成你的网卡名称-nn显示IP地址和Mac地址tcpdump-nn-ieth1icmp今天正好有时间做一个简单的补充tcpdump其实和wireshark一样都会识别BPF语法所以做一个简单的补充:BPF语法:dst//目的地址src//原地址host//主机名称port//端口号icmp//icmp协议tcp//tcp协议udp//udp协议一般情况下我们只做一些简单的数据包分析
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持