- webrtc 源码阅读 make_ref_counted模板函数用法
wu_qz
webrtc笔记
目录1.模板参数解析1.1typenameT1.2typename...Args1.3typenamestd::enable_if::value,T>::type*=nullptr2.scoped_refptr3.newRefCountedObject(std::forward(args)...);4.综合说明5.在webrtc中的用法5.1peerConnectionFactory对象的构建过程
- LNMP——搭建论坛(Linux、Nginx、Mysql、PHP)
ML908
Web服务器群集LNMPdiscuz
LNMP指的是一个基于CentOS/Debian编写的Nginx、Linux、MySQL、PHP,可以在独立主机上轻松的安装LNMP生产环境。此次我们使用LNMP框架部署Discuz!社区论坛应用。Nginx安装Nginx作为Web服务器。相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率。Nginx作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP,
- 【软件开发/设计】需求文档模板
阿寻寻
软件开发/设计团队开发
需求文档模板一、需求文档模板1.文档信息2.项目概述3.范围定义4.需求详情4.1功能需求4.2非功能需求4.3用户界面和用户体验4.4数据管理4.5业务规则和逻辑5.项目里程碑和交付物6.假设和依赖7.风险评估8.附录9.审核和批准二、需求文档编写人员1、业务分析师2、产品经理3、项目经理4、跨职能团队协作5、总结创建一个高质量的需求文档对于确保项目成功至关重要。以下是一个需求文档的模板,可以帮
- Go微服务十二 Go使用nacos 注册服务,服务发现
太阳上的雨天
微服务go微服务nacos
创作不易感谢支持。一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。个人博客:太阳上的雨天地址:http://blog.caixiaoxin.cn善于分享,希望有助他人.非常感谢各位大佬的关注和支持Go使用阿里nacos管理服务注册和发现,思路Demo连接nacosfuncInitNacos()*nacosRF{//return&nacosRF{}d:=&na
- 2025年计算机专业毕业设计选题推荐 速存
小晓程序设计
课程设计javaspringboot毕业设计
2025最新计算机专业毕业设计选题推荐博主介绍CSDN特邀作者、博客专家、CSDN新星计划导师Java领域优质创作者,荣获“博客之星”称号掘金、华为云、阿里云、InfoQ等平台优质作者专注于Java技术及学生毕业项目实战指导高校教师/讲师,擅长同行交流合作文末获取源码联系方式主要内容SpringBoot、Vue、SSM框架应用HLMT(假设为某特定技术或框架)、Jsp、PHP、Node.js、Py
- Databend 产品月报(2024年8月)
数据库
很高兴为您带来Databend2024年8月的最新更新、新功能和改进!我们希望这些增强功能对您有所帮助,并期待您的反馈。KafkaConnectSinkConnector插件我们推出了一种将Kafka连接到Databend的新方式:databend-kafka-connect,这是一个KafkaConnectsinkconnector插件。该插件支持AppendOnly和Upsert两种写入模式,
- 【Python】高效的Web自动化测试利器—Python+Playwright快速上手自动化实战指南
墩墩分墩
Pythonpython自动化测试playwright爬虫UI自动化
文章目录前言一.playwright是什么二.python引入playwright1.安装2.playwright命令行参数3.playwrightcodegen自动生成代码4.Chrome和Chromium有什么关系?三.基本概念1.无头浏览器(HeadlessBrowser)2.同步和异步模式操作playwright2.1.同步(Sync)模式同步方式代码模板2.2.异步(Async)模式异步
- jenkins-pipeline 动态生成参数
xiao-xiang
jenkinsjenkins运维
一.简述:常情况下,jenkins的参数构建可能需要手动定义,或结合第三方插件(如gitparameter)实现日常。的参数化构建。但在一些特殊的场景下,可能无法满足我们的需求,比如:通过应用树的API获取某个接口信息,然后动态生成构建参数。在pipeline的环境中,可能没法通过第三方参数插件来实现参数获取。不过jenkins提供了一个ActiveChoicesParameter插件,可通过一些
- python edge_tts(文本转音频)
Oscar_0208
python音视频
1.安装插件edge-ttspipinstalledge-tts2.文本转音频""":paramvoice:指定声音名称:paramcontent:文本内容:paramaudioFile:音频输出文件:paramvttFile:字幕输出文件"""asyncdefcreate_tts_mp3(voice:str,content:str,audioFile:str,vttFile:str)->None
- debian 安装php7_Ubuntu/Debian安装PHP 7.2教程
一碗面条v
debian安装php7
适用系统:Ubuntu16.04/14.04、Debian8/9添加软件源Ubuntu#安装软件源拓展工具apt-yinstallsoftware-properties-common#添加PHPPPA源,需要按一次回车add-apt-repositoryppa:ondrej/php#更新软件源缓存aptupdateDebian#添加GPGwget-O/etc/apt/trusted.gpg.d/p
- debian php安装,如何在Debian 9上安装PHP
第四根肋骨
debianphp安装
装有PHP7.0版的Debian9即将终止支持,并且不再收到安全更新。在本教程中,我们将引导您完成在Debian9服务器上安装PHP7.2的步骤。我们还将向您展示如何配置Apache和Nginx以运行PHP。先决条件在Debian9上安装PHP7.2以下步骤描述了如何使用OndrejSury存储库安装PHP7.2。首先,更新apt软件包列表并安装必要的依赖项,以通过HTTPS添加新存储库:sudo
- 宝藏级Docker应用推荐(建议NAS/AllinOne用户收藏)
芥子沫
docker容器运维
梳理收集了个人比较常用的Docker应用,这些应用大多免费开源,能极大提高的提高日常工作效率,也能充分榨干家里闲置设备资源,比如NAS、个人PC、主机服务器等。一、家庭娱乐中心类家庭影音、漫画、小说等1、影视类Jellyfin、Emby(个人可以不开通专业版,免费版够用)推荐原因:看电影、直播很方便,强大的插件扩展和编解码能力,能很方便的看各种电影电视资源,跨Jellyfin:Jellyfin是一
- flutter 解决 Running Gradle task ”assembleDebug“
赖某
Flutterflutterandroidstudio
前提时间:2020-08-0100:00:00AndroidStudio配置好模拟器运行的时候在RunningGradletask”assembleDebug“始终不会变化flutterdoctor的环境基本没有问题照着官网,去配置flutter,环境变量等,然后执行命令flutterdoctor#它会检查插件SDK等环境,尽量保证无打叉这时候在AndroidStudio的考虑下,因为照着flut
- java导出word poi_Java使用POI根据模板导出Word
张林威
java导出wordpoi
最近从新写了一下根据Word模板导出Word。注意:Word只包含表格和段落,不使用表格布局。图片样式也保留,但是预先需要知道图片的资源ID。删除多余模块时,有顶部对不齐的问题。可能还存在其他细节问题。首先模板样式:下面是导出来的Word:下面贴上代码:packagecom.acgist.word;importjava.io.File;importjava.io.FileInputStream;i
- eclipse的书签快捷键插件-Quickmarks plugin
springleft
eclipseduplicatesdocumentationkeyboardpluginsfile
eclipse编辑器增强工具之书签工具:插件主页:http://eclipse-tools.sourceforge.net/quickmarks/OverallQuickmarksareWorkspaceglobalbydefault,butyoucanchangethattohaveoneSetofQuickmarksperProject,FolderorDocument.AQuickmarkr
- java通过模板导出docx文档
qq_39493446
javafreemarkerxml
@java通过模板导出docx文档二、使用步骤代码如下(示例):importfreemarker.template.Configuration;importfreemarker.template.Template;importjava.io.*;importjava.util.Enumeration;importjava.util.HashMap;importjava.util.Map;impor
- Flask学习笔记(一):基本框架和HTTP处理
洪小帅
flask学习笔记pythonweb
文章目录前言flask学习笔记1.基本框架1.1视图函数与路由1.2模板与静态文件2.HTTP与flask2.1Request对象2.2request获取url参数2.2.1args.get()方法2.2.2args.getlist()方法2.3处理请求2.4重定向总结前言兄弟们,flak是真好用吧!本文是笔者学习flask时做的笔记的第一篇,记录了一些最基础且常用的入门级操作.flask学习笔记
- flutter在使用gradle时的加速
LuiChun
flutter
当我使用了一些过时的插件的时候,遇到了一些问题比如什么namespace问题等,因为有些插件库没有更新了,或者最新版本处于测试阶段于是我就删除这些旧插件(不符合我要求的插件)于是根据各论坛的解决方法去做了以下的工作1:项目中删除了这些插件2:项目中删除了这些引用3:删除了gradle的缓存4:更换了新版本的gradle的版本5:清除flutter缓存6:重新下载构建插件7:运行后报错这个办法居然行
- react数据异步更新
wlt_5079
react.jsjavascript
1.react数据异步更新定义一个类组件模板:classMyComextendsReact.Component{}设置state状态数据:state={name:"张三"}render()渲染函数:render(){return{this.state.name}}过程:this打点调用自定义函数change绑定click事件,返回一个button按钮,通过this.state打点调用自定义属性na
- 【ubuntu】【rabbitmq】ubuntu 安装 rabbitmq
wecode66
rabbitmq分布式
文章目录一、安装erlang二、添加公钥三、更新软件包(可选)四、安装RabbitMQ五、RabbitMQ状态管理六、安装web插件七、远程登录(web端)八、添加自定义VHOST及分配权限一、安装erlang#安装erlangsudoapt-getinstallerlang-nox#查看relang语言版本,成功执行则说明relang安装成功erl二、添加公钥wget-O-https://www
- vue和reacts数据响应式的差异
每天吃饭的羊
react+ts新手vue.jsjavascript前端
Vue的数据响应式:原理:Vue使用Object.defineProperty或Proxy(在Vue3中)来实现数据的响应式。当创建Vue实例时,会对data对象中的属性进行遍历,将其转换为响应式属性。对于Object.defineProperty,它会为每个属性定义getter和setter函数,getter会收集依赖(如模板中的表达式、计算属性或watch监听器),而setter会触发更新,通
- TypeScript语言的字符串处理
轩辕烨瑾
包罗万象golang开发语言后端
TypeScript语言的字符串处理在现代编程语言中,字符串处理是非常重要的一部分。对于TypeScript这样的语言,更是让开发者在处理字符串时得到了更为安全和强大的工具。本文将深入探讨TypeScript中的字符串处理技术,包括字符串的基本操作、模板字符串、字符串方法、正则表达式以及常用的字符串处理技巧等。一、TypeScript基础与字符串的基本操作TypeScript是JavaScript
- Linux 离线安装php+nginx+ftp
陌潇
linuxphpnginx
一、资源上传到离线服务器:二、安装:rpm-ivh*.rpm三、配置:1、nginx配置:主配置文件:/etc/nginx/nginx.conf#Formoreinformationonconfiguration,see:#*OfficialEnglishDocumentation:http://nginx.org/en/docs/#*OfficialRussianDocumentation:ht
- K8s架构与组件
稚辉君.MCA_P8_Java
kubernetes容器云原生网络
一、K8s架构在Master通常上包括kube-apiserver、etcd存储、kube-controller-manager、cloud-controller-manager、kube-scheduler和用于K8s服务的DNS服务器(插件)。这些对集群做出全局决策(比如调度),以及检测和响应集群事件的组件集合也称为控制平面。其实K8s官方并没有Master这一说,只是大多数安装工具(kube
- 如何使用 LangChain 组合提示符模板
GEAWfaacc
langchainpython
在现代AI应用中,构建灵活且易于重用的提示符(Prompt)是开发者的核心需求之一。LangChain提供了一种直观的方法来组合不同部分的提示,从而实现提示符模板的高效组合和再利用。本篇文章将通过几个具体的例子,带您了解如何在LangChain中进行提示符的组合。技术背景介绍LangChain是一个用于处理语言模型提示符的框架,它支持将字符串提示符和聊天提示符进行组合,从而提高开发效率和代码复用性
- php jwt解密token,php实现JWT(json web token)鉴权实例
数据科学人工智能
phpjwt解密token
JWT是什么JWT是jsonwebtoken缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。基于token的身份验证可以替代传统的cookie+session身份验证方法。JWT由三个部分组成:header.payload.signature以下示例以JWT官网为例header部分:{"alg":"HS256","
- 美赛LATEX模板将控制号、选题号标红方法
雪落时分
美赛模板EasyMCM颜色修改问题标题代码调整
背景介绍:本人使用的是西交钱院学辅提供的美赛模板,将通过EasyMCM来修改颜色参数:第一步:打开easymcm.sty文件,并定位至以下段落:\newcommand{\@problem}[1]{}\newcommand{\problem}[1]{\gdef\@problem{#1}}\newcommand{\makesheet}{%生成sheet头命令的定义\null%\vspace*{-5pc
- Jetbrains Ai Assistant插件越来越好用了
Ai 编码
Ai编码工具人工智能android
在IntelliJIDEA中,JetBrainsAI是JetBrains集成的人工智能功能,旨在提高开发效率,辅助开发者更智能地编写、优化和理解代码。JetBrainsAI作为IntelliJIDEA的一部分,通过自然语言处理和机器学习技术,提供了许多智能代码建议和自动化功能。点击这里:获取JetbrainsAiAssistant插件 以下是JetBrainsAI在IntelliJIDEA中的一
- Flask、Tornado
本咸鱼也有梦想啦
Web后端
文章目录flaskflask响应flask请求蓝图TornadoTornado环境搭建Tornado中的响应方式Tornado中的请求的操作用Tornado实现WebSocket服务器的搭建flask相比django更轻量级支持wsgi协议flask响应1、直接return一个字符串(可以是HTML代码)2、跳转到一个模板页面render_template3、重定向到一个路由中redirectfl
- PostgreSQL 向量扩展插件pgvector安装和使用
m0_74823524
面试学习路线阿里巴巴postgresql数据库
文章目录PostgreSQL向量扩展插件pgvector安装和使用安装postgresqlpgvector下载和安装安装错误调试错误调试1尝试解决AP1:启动postgresql错误调试2尝试解决AP2:使用apt-getinstallpostgresql-server错误调试3尝试解决AP3:卸载apt-get安装错误调试4设置环境变量PG_CONFIG编译成功使用pgvector测试例列出当前
- 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独立出来,数据持