- 自定义参数解析器HandlerMethodArgumentResolver,重新定义@ResponseBody的请求方式
chanyi
1、解决的问题加了@ResponseBody注解的方法,请求的方式是post的json格式,但如果我们也要通过post的application/x-www-form-urlencoded格式访问此接口。在不改变此接口的情况下。通过修改参数解析器HandlerMethodArgumentResovler来兼容两种请求方法。2、思路根据不同的content-type使用不同参数解析处理器。Conten
- LeetCode - 字符串解码(栈数据结构/递归法)/ 接雨水(重复遍历/双指针法)
葵续浅笑
算法leetcode
欢迎光临小站:致橡树字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输
- LeetCode #535 Encode and Decode TinyURL TinyURL 的加密与解密
air_melt
535EncodeandDecodeTinyURLTinyURL的加密与解密Description:Note:ThisisacompanionproblemtotheSystemDesignproblem:DesignTinyURL.TinyURLisaURLshorteningservicewhereyouenteraURLsuchashttps://leetcode.com/problems/
- Qwen3 Coder——最强开源编程模型
核心要点(TL;DR)Qwen3-Coder-480B-A35B-Instruct是目前最强大的开源Agentic编码大模型,支持超长上下文和高效多轮交互,适用于复杂代码和自动化任务。新一代模型在代码生成、工具调用和多任务代理方面表现优异,提供命令行工具QwenCode,便于开发者集成到日常工作流。社区反馈积极,但模型体积庞大,对硬件有较高要求,适合有算力资源的专业用户,普通用户可关注未来小体积版
- 外汇兑换的python代码_基于Python的实时汇率接口调用代码实例
weixin_39761481
外汇兑换的python代码
#!/usr/bin/python#-*-coding:utf-8-*-importjson,urllibfromurllibimporturlencode#----------------------------------#汇率调用示例代码-聚合数据#在线接口文档:http://www.juhe.cn/docs/80#----------------------------------defm
- perl json encode_json decode_json
scan724
perlWeixinClient
Perl的decode_json()函数用于在Perl中解码JSON。这个函数返回从JSON解码到适当Perl类型的值useJSONqw/encode_jsondecode_json/;my$data=[{'name'=>'Ken','age'=>19},{'name'=>'xy','age'=>25}];my$json_out=encode_json($data);print$json_out;
- Pytorch实现细节解析:Transformer模型的Encoder与Decoder逐行代码讲解
lazycatlove
pytorchtransformer人工智能
文章目录摘要一、Transformer1.1为什么要使用attention1.2Transformer的优点二、Transformer模型Encoder和Decoder原理讲解与其Pytorch逐行实现2.1wordembedding2.2单词索引构成源句子和目标句子2.3构建positionembedding2.4构造encoder的self-attentionmask2.5构造intra-at
- Transformer模型Decoder原理精讲及其PyTorch逐行实现
老鱼说AI
transformerpytorch深度学习人工智能学习python
原理:Decoder的核心是一个自回归(Auto-regressive)的生成器。它的任务是在给定源序列的编码表示(encoder_outputs)和已生成的目标序列部分(y_1,...,y_{t-1})的条件下,预测出下一个词y_t的概率分布。一个标准的DecoderLayer包含三个核心子层:1.带掩码的多头自注意力(MaskedMulti-HeadSelf-Attention):用于处理已生
- 【音视频学习】三、FFmpeg音频编码过程详解
知无涯啊
音视频学习ffmpeg
文章目录前言1、FFmpeg编解码器的编码流程概述2、FFmpeg编码函数详解2.1constAVCodec*codec=avcodec_find_encoder(AV_CODEC_ID_MP2)2.2AVCodecContext*c=avcodec_alloc_context3(codec);2.3给编码器上下文设置参数2.4avcodec_open2(c,codec,NULL)2.5pkt=a
- 模型系列(篇一)-Bert
小新学习屋
大模型知识点bert人工智能深度学习自然语言处理大模型
简介Devlin在2018年提出BERT(BidirectionalEncoderRepresentationfromTransformer),是自编码的语言建模方法。模型详细介绍结构BERT由12层Transformer组成输入BERT的输入形式:[CLS]文本1[SEP]文本2[SEP]。采用这种形式的原因:MLM对于输入形式没有要求,但是NSP要求模型的输入是两段文本,因为在预训练阶段输入形
- 基于Python根据两个字符串给出相似度/近似度_Python实现字符串语义相似度算法(附上多种实现算法)
袁袁袁袁满
Python实用技巧大全python算法开发语言相似度自然语言处理相似度算法sklearn
以下是几种基于语义的字符串相似度计算方法,每种方法都会返回0.0到1.0之间的相似度分数(保留一位小数)。文章目录方法1:计算Levenshtein距离(基于字符的相似度)方法2:使用Sentence-BERT预训练模型方法3:使用spaCy进行语义相似度比较方法4:使用spaCy和词向量方法5:使用UniversalSentenceEncoder(USE)方法6:使用BERT-as-Servic
- 关于使用FFmpeg进行视频拼接
关于使用FFmpeg进行视频拼接方案使用concatdemuxer使用concat协议更多支持其他方案使用concat滤镜失败其他工具MP4BoxMKVMergeMEncoder额外知识管道h264_mp4toannexb&aac_adtstoasc参考资料修改历史方案http://trac.ffmpeg.org/wiki/Concatenate使用concatdemuxerFFmpeg读取不同格
- php中的hmac,JavaScript通过CryptoJS等效实现php中hash_hmac函数加密raw_output配置
好想不取名
php中的hmac
在一个项目中,客户需要从前端签名,加密插件使用的cryptoJS,使用与后端一样的签名流程(HmacSHA1后Base64.encode)发现并不能通过签名认证,签名校验方后端php代码中使用hash_hmac函数,先来看一下则会个函数的官网说明:说明hash_hmac(string$algo,string$data,string$key[,bool$raw_output=FALSE]):stri
- 分类模型(BERT)训练全流程
巴伦是只猫
人工智能分类bert数据挖掘
使用BERT实现分类模型的完整训练流程BERT(BidirectionalEncoderRepresentationsfromTransformers)是一种强大的预训练语言模型,在各种NLP任务中表现出色。下面我将详细梳理使用BERT实现文本分类模型的完整训练过程。1.准备工作1.1环境配置pipinstalltransformerstorchtensorflowpandassklearn1.2
- 华为OD面试手撕真题 - 字符串解码 (C++ & Python & JAVA & JS & GO)
无限码力
华为OD面试手撕代码真题合集华为od面试手撕真题华为OD面试手撕真题
题目描述给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:k[encoded_string],表示其中方括号内部的encoded_string正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。示例1输入:s="
- 自编码器表征学习:重构误差与隐空间拓扑结构的深度解析
码字的字节
机器学习自编码器重构误差隐空间
自编码器基础与工作原理自编码器(Autoencoder)作为深度学习领域的重要无监督学习模型,其核心思想是通过模拟人类认知过程中的"压缩-解压"机制实现数据的表征学习。这种由GeoffreyHinton团队在2006年复兴的神经网络结构,本质上是一个试图通过编码-解码过程来复制其输入的系统,却在实现这一看似简单目标的过程中,意外地获得了强大的特征提取能力。基本架构与工作流程典型自编码器由对称的两部
- URL GET +号后台接收成空格
墨着染霜华
javavue
问题:参数spdm=whbs+001其中包含URL特殊符号如果用GET请求方式不做任何不处理那么浏览器自动将+转为%20请求链接为details?spdm=whbs%20001&limitKcysType=1后台接收到的参数为whbs001,自动将+号转成空格了。尝试解决(失败):前端URLENCODE然后后台解密params:{spdm:encodeURIComponent(this.spdm)
- 论文阅读:LLaVA1.5:Improved Baselines with Visual Instruction Tuning
微风❤水墨
LLM&AIGC&VLPLLM
论文:https://arxiv.org/abs/2310.03744代码:https://github.com/haotian-liu/LLaVA#train微调:https://github.com/haotian-liu/LLaVA/blob/main/docs/Finetune_Custom_Data.md模型论文时间VisionEncoderVLAdapterProjectionLaye
- 在ComfyUI中CLIP Text Encode (Prompt)和CLIPTextEncodeFlux的区别
虎冯河
AIGCComfyUI
CLIPTextEncode(Prompt)CLIPTextEncodeFlux在ComfyUI中对token支持长度是否相同的详细技术对比:1、CLIPTextEncode(Prompt)通常来自:ComfyUI官方自带CLIPTextEncode节点。特点:✅使用OpenAICLIP模型(ViT-L/14等)✅默认最大支持77tokens(固定超参数)✅超过77tokens时:部分实现直接截断
- 【大语言模型基础】GPT(Generative Pre-training )生成式无监督预训练模型原理
前言ELMo:将上下文当作特征,但是无监督的语料和我们真实的语料还是有区别的,不一定符合我们特定的任务,是一种双向的特征提取。OpenAIGPT:通过transformerdecoder学习出来一个语言模型,不是固定的,通过任务fine-tuning,用transfomer代替ELMo的LSTM。OpenAIGPT其实就是缺少了encoder的transformer:当然也没了encoder与de
- 在二分类任务中如何处理包含中文的类别特征
Dush32
分类数据挖掘人工智能机器学习数据分析
在机器学习中,处理类别特征(CategoricalFeatures)是常见的任务,特别是在中文数据中,很多类别特征如省份、城市等都是字符串类型。如何将这些类别变量转换为模型可以理解的数值格式,是每个数据科学家都必须面对的挑战。在这篇文章中,我们将探讨两种常见的类别特征编码方法:astype('category')和LabelEncoder,并比较它们在二分类任务中的效果。我们以“省份”这一类别特征
- python ffmpeg pipe,管道的ffmpeg的输入和输出在python
呼呼啦啦就瘸了
pythonffmpegpipe
I'musingffmpegtocreateavideo,fromalistofbase64encodedimagesthatIpipeintoffmpeg.Outputtingtoafile(usingtheattachedcodebelow)worksperfectly,butwhatIwouldliketoachieveistogettheoutputtoaPythonvariableins
- Django学习笔记:(五)模板过滤器
码农葫芦侠
Djangodjango学习笔记
模板过滤器1简介2语法3常见过滤器3.1add3.2addslashes3.3center3.4cut3.6date3.6default3.7default_if_none3.8dictsort3.9dictsortreversed3.10lower3.11filesizeformat3.12upper3.13first3.14last3.15floatformat3.16iriencode3.1
- Datawhale组队学习打卡-Fun-transformer-Task3Encoder
宇宙第一小甜欣
学习transformer深度学习
今天的内容主要是Encoder部分的具体流程,多头注意力和交叉注意力,还是会有比较多的公式来厘清每部分的输入和输出以及对应的方法。Encoder如第一篇所说,Encoder是Transformer的第一部分,其主要任务是将输入序列(如文本、词语或字符)编码为一个上下文丰富的表示,Encoder的输出是Decoder的输入的一部分(用作Attention机制中的和)。1.Encoder的整体结构堆叠
- Postman/Apipost中使用Post URL编码发送含换行符参数的问题分析
悟道|养家
postman测试工具
Postman/Apipost中使用PostURL编码发送含换行符参数的问题分析在使用Postman或Apipost等API测试工具进行POST请求时,当参数中包含换行符(\n或\r)通过UI界面复制参数时会遇到参数发送失效的问题。问题原因分析URL编码规范限制:x-www-form-urlencoded格式要求所有特殊字符(包括换行符)都必须进行百分号编码(URL编码)换行符(\n)在URL编码
- 【RK3568 嵌入式linux QT开发笔记】 二维码开源库 libqrencode 交叉静态编译和使用
本文参考文章:https://blog.csdn.net/qq_41630102/article/details/108306720参考文章有些地方描述的有疏漏,导致笔者学习过程中,编译的.a文件无法在RK3568平台运行,故写本文做了修正,以下仅是自我学习的笔记,没有写的很详细。一:下载软件包https://download.csdn.net/download/qq_41630102/12781
- 【vLLM 学习】Encoder Decoder Multimodal
HyperAI超神经
vLLMvLLMKV缓存大语言模型推理加速内存管理开源项目在线教程
vLLM是一款专为大语言模型推理加速而设计的框架,实现了KV缓存内存几乎零浪费,解决了内存管理瓶颈问题。更多vLLM中文文档及教程可访问→https://vllm.hyper.ai/*在线运行vLLM入门教程:零基础分步指南源码examples/offline_inference/encoder_decoder_multimodal.py#SPDX-License-Identifier:Apach
- Python 日期格式转json.dumps的解决方法
douyaoxin
pythonjson开发语言
classDateEncoder(json.JSONEncoder):defdefault(self,obj):ifisinstance(obj,datetime.datetime):returnobj.strftime('%Y-%m-%d%H:%M:%S')elifisinstance(obj,datetime.date):returnobj.strftime("%Y-%m-%d")json.d
- 【AI大模型】LLM模型架构深度解析:BERT vs. GPT vs. T5
我爱一条柴ya
学习AI记录ai人工智能AI编程python
引言Transformer架构的诞生(Vaswanietal.,2017)彻底改变了自然语言处理(NLP)。在其基础上,BERT、GPT和T5分别代表了三种不同的模型范式,主导了预训练语言模型的演进。理解它们的差异是LLM开发和学习的基石。一、核心架构对比特性BERT(BidirectionalEncoder)GPT(GenerativePre-trainedTransformer)T5(Text
- Python淘宝拍立淘按图搜索API接口,json数据示例参考
ID_18007905473
pythonAPI数据库json大数据python
淘宝拍立淘按图搜索API接口示例淘宝的拍立淘(图片搜索)功能通常是通过淘宝开放平台提供的API实现的。以下是一个模拟的JSON数据示例和接口调用参考:模拟API请求示例importrequestsimportbase64#示例图片路径image_path="example.jpg"#读取图片并编码为base64withopen(image_path,"rb")asimage_file:encode
- 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独立出来,数据持