- llama.cpp 编译安装@Ubuntu
skywalk8163
项目实践人工智能llamaubuntulinux人工智能
在Kylin和Ubuntu编译llama.cpp,具体参考:llama模型c语言推理@FreeBSD-CSDN博客现在代码并编译:gitclonehttps://github.com/ggerganov/llama.cppcdllama.cppmkdirbuildcdbuildcmake..cmake--build.--configRelease#可选安装makeinstall#或可选添加路径ex
- centos7 编译安装nginx-1.14.2
YHJ
nginx
1.下载nginxhttp://nginx.org/en/download.html选择稳定版本即可Stableversion这里我们选择nginx-1.14.22.上传nginx到linux上上传路径为/usr/local/3.解压tar-xvfnginx-1.14.2.tar.gzcdnginx-1.14.24.安装依赖yuminstallgccgcc-c++pcrepcre-develzli
- GitLab 的具体步骤
微个日光日
gitlab
安装操作系统:选择适合的操作系统,如Linux、Windows等。配置服务器:安装必要的软件和服务,如Web服务器、数据库等。安装GitLab:使用官方安装包或自行编译安装,根据提示进行安装。配置数据库:选择适合的数据库,如MySQL、PostgreSQL等,并进行配置。配置Web服务器:配置Web服务器,如Apache、Nginx等,使其能够处理GitLab的请求。配置邮件服务器:配置邮件服务器
- 59-Ubuntu-NGINX 高级配置
岂将无言做病深
nginxubuntu
文章目录第三方模块Nginx变量使用Nginx压缩功能https功能自签名证书实现多域名HTTPSfavicon.ico隐藏Nginx版本号OpenSSL版本升级第三方模块第三方模块是对nginx的功能扩展,第三方模块需要在编译安装Nginx的时候使用参数–add-module=PATH指定路径添加,nginx支持第三方模块,需要从源码重新编译支持[root@U8:~]#/apps/nginx/s
- Suse 12更新操作系统Openssl(3.2.0)、OpenSSH(9.6p1)及ntp(4.2.8p17)(源码编译安装)
Lz__Heng
服务器linux运维opensshntpsuse
部署前准备安装依赖zypperinstall-ygccgcc-c++glibcmakeautoconfopensslopenssl-develpcre-develpam-develzypperinstall-ypam*zlib*SUSE的pam模块支持与其他Linux不同,请按需检查openssh-9.6p1.tar.gzopenssl-3.2.0.tar.gzzlib-1.3.1.tar.gz(
- linux下搭建boost、muduo、mysql、nginx
孜孜不倦fly
后端开发c++
参考博客:1.boost:C++网络编程-Boost::asio异步网络编程-01-boost库源码编译安装2.muduo:C++muduo网络库知识分享01-Linux平台下muduo网络库源码编译安装3.mysql:sudoapt-getinstallmysql-serversudoapt-getinstallmysql-clientUbuntu安装和使用MySQLERROR1698(2800
- Liunx的Apache安装及配置
Miraitowa_xu
apache
目录一、Apache安装1.Apache介绍2.yum安装3.编译安装4.服务管理二、Apache配置应用1.基础应用2.http服务三种工作模式3.httpd服务处理过程一、Apache安装1.Apache介绍Apache即阿帕奇是一款开源的、世界使用排名第一的Web服务器软件,其特点是简单高效、稳定安全所以被广泛应用于计算机技术的各个领域,但现在由于其抗并发性问题现在新公司大部分都使用Ngin
- sudo mvn package后提示找不到mvn命令
my_chenjie
环境安装mvn
解决办法是,编辑当前用户的.bashrc文件,添加下面这行内容:aliassudo="sudoenvPATH=$PATH"因为系统预装的sudo在编译时缺省使用了–with-secure-path参数,因此当前用户使用sudo时环境变量$PATH被覆盖,通过添加上面那行别名设置,就会在执行sudo时把当前的$PATH的值再套用上,达到想要的效果。当然,最根本的解决办法还是重新编译安装sudo,编译
- centos7 arm服务器编译安装matplotlib
番茄小能手
aarch64Linuxlinux
前言在centos7arm服务器上安装matplotlib高版本正常,但安装低版本pip3installmatplotlib==3.1.3时,报错:“src/checkdep_freetype2.c:1:10:fatalerror:ft2build.h:Nosuchfileordirectory”,如下图:解决方法经过查找资料,报错原因:最新版本的fontconfig,安装fontconfig后再
- centos7 arm服务器编译安装onnxruntime-gpu
番茄小能手
aarch64Linuxarm开发centos7
前言ONNXRuntime是适用于Linux,Windows和Mac上ONNX格式的机器学习模型的高性能推理引擎,但在arm服务器上,onnxruntime只有CPU版的,GPU版的没有,因此需要自行去编译GPU版本的才可以。环境准备1、python3.82、cmake:2.26.0版本以上,可以直接下载aarch64版本的进行安装Releases·Kitware/CMake(github.com
- Web 基础——Apache
愿许浪尽天涯
WebWeb基础——Apache运维linuxApache三种工作模式Apache优化
Web基础——Apache一、Web简介1.域名2.域名解析3.Web基础概念4.HTTP协议分析1)HTTP请求报文和响应报文5.HTTP状态码6.Apache特点1)三种工作模式PreforkWorkerEvent二、部署Apache网站服务1.编译安装Apache2.安装后优化调整3.使用浏览器访问验证4.配置多个网页5.调整工作模式1)查看工作模式2)Prefork工作模式3)Worker
- 深度学习主流开源框架:Caffe、TensorFlow、Pytorch、Theano、Keras、MXNet、Chainer
seasonsyy
深度学习小知识深度学习开源框架pytorch
2.6深度学习主流开源框架表2.1深度学习主流框架参数对比框架关键词总结框架关键词基本数据结构(都是高维数组)Caffe“在工业中应用较为广泛”,“编译安装麻烦一点”BlobTensorFlow“安装简单pip”TensorPytorch“定位:快速实验研究”,“简单”,“灵活”TensorTheanoד用于处理大规模神经网络的训练”,“不支持移动设备”,“不能应用于工业环境”,“编译复杂模型时
- pg_jieba在windows上编译安装
kmblack1
windowspg_jieba
2024.02.03修改,添加关键词增加了独占锁.1源码下载cdD:\buildgitclonehttps://github.com/jaiminpan/pg_jiebagitclone--depth=10--branch=mastergit://github.com/yanyiwu/cppjieba.git#复制cppjieba/deps至pg_jieba/libjieba#复制cppjieba
- 数据库架构师之道:MySQL安装与系统整合指南
Srlua
运维数据库数据库MySQLmysql
目录MySQL数据库安装(centos)版本选择企业版社区版选哪个MySQL特点MySQL服务端-客户端mysql下载选择软件包解释安装MySQL的方式rpm包安装yum方式安装源码编译安装★具体的编译安装步骤★★环境准备free-m命令cat/proc/cpuinfom命令top命令cat/etc/redhat-release命令编译前的依赖安装获取mysql的源代码解压缩,安装mysql执行c
- 【ansible】自动化运维ansible之playbook剧本编写与运行
liu_xueyin
运维ansible自动化云原生docker容器linux
目录一、ansible剧本playbook的组成二、palybook的基础应用:实操1:通过palybooks完成nginx的安装第一种:通过yum安装nginx第二种:通过编译安装nginx实操2:playbook定义、引用变量实操3:通过playbook完成普通账户权限提权为root用户实操4:通过when条件判断指定主机完成相应的任务实操5:通过with_items循环实现在远程主机上关闭服
- centos7搭建redis7.0.6cluster集群(编译和docker安装)及docker单机
周洋宇杰
redisrediscentos
本文尝试两种安装模式编译安装和docker容器安装一,编译安装1,环境准备系统centos7.9,IP及端口10.161.3.12:637910.161.3.12:638010.161.3.13:637910.161.3.13:638010.161.3.14:637910.161.3.14:6380防火墙端口开放:sudofirewall-cmd--zone=public--add-port=63
- docker 编译安装redis脚本
三希
dockerredis容器
在Docker中编译安装Redis通常不是一个常见的做法,因为Redis官方提供了预编译的Docker镜像,这些镜像包含了已经编译好的Redis二进制文件。不过,如果你有特殊需求,想要自己从源代码编译Redis并打包成Docker镜像,你可以使用Dockerfile来实现。下面是一个简单的Dockerfile示例,用于从Redis的源代码编译并安装Redis,然后创建一个Docker镜像:#使用一
- AWS Serverless PySpark 指定 Python 版本(qbit)
前言当前AWSEMR的最新版本是6.15,自带的Python版本是3.7,尝试上传使用Python3.11Python环境打包技术栈Ubuntu22.04(x86)Linuxversion5.15Python3.11.5pyspark3.4.1conda23.10.0conda-pack0.7.1官方建议用在AmazonLinux2上编译安装Python环境,测试发现在Ubuntu上用Minico
- 宝塔面板(CentOS7)安装ffmpeg视频切片模块
withoutfear
PHPlinuxffmpeg宝塔
FFmpeg是用于处理多媒体内容(例如音频,视频,字幕和相关元数据)的库和工具的集合。但是宝塔面板默认是没有安装的,所以我们需要自己编译安装。这里提供2中方法给各位参考,如果有更好的不妨留言交流。1、升级cd/rootyum-yupdate2、安装1安装命令如下:#下载ffmpeg(x64二进制文件)wgethttps://johnvansickle.com/ffmpeg/builds/ffmpe
- linux 安装 ffmpeg 包括静态包和编译安装
树下水月
ffmpeglinux运维
linux安装ffmpegwindows上安装,直接下载压缩包解压。linux安装,找了半天各种技术文章,说最好编译安装,按照步骤安装编译环境编译成功了,但是使用的时候总要安装各种外部库,转码转不了等等问题......最后无奈,卸载掉ffmpeg,去官网下载编译好的程序,尝试了一下。效果满意。所以建议0基础底子薄的,和我一样不要编译安装了。切记,去官网下载最新版本ffmpeg。避免踩坑!ffmpe
- 在ubuntu20.04上安装arm-linux-gcc 4.4.3
在Ubuntu20.04中安装arm-linux-gcc4.4.3的过程可以分为几个步骤。由于arm-linux-gcc4.4.3可能不直接存在于Ubuntu的软件源中,因此需要从源码编译安装。以下是详细的步骤:安装依赖在开始之前,你需要确保已经安装了必要的依赖。在终端中输入以下命令:sudoapt-getupdatesudoapt-getinstallbuild-essentiallibgmp3
- GIT安装,基本配置及使用20181002
sky92archangel
本文安装方式仅支持Debian系列操作系统第一课GIT安装sudoapt-getinstallgit或下载源代码编译安装GIT使用初始化注册GITgitconfig--globaluser.name"用户名"gitconfig--globaluser.email"邮箱"查看看配置gitconfig--listGIT工作流1-在工作目录中添加修改文件2-将需要进行版本管理的文件爱你放入暂存区3-将暂
- RSIC-V
h~k~f
risc-v
RISC-V环境搭建riscv-gnu-toolchain一、编译安装riscv-gnu-toolchain方式一、手动编译安装1、Cloneriscv-toolchain2、安装相关依赖库3、创建riscv文件夹,并设置权限4、设置环境变量5、编译(预计三个小时左右)方式二、编译压缩包安装(只适用于ubuntu)1、下载压缩包2、安装相关依赖库3、设置环境变量二、下载并编译riscv-fesvr
- 将编译安装的PHP添加到service,并设置开机自启
php转go
将php-fpm添加至service服务1,去到编辑安装后的PHP目录,找到etc/php-fpm.conf文件;pid=run/php-fpm.pid前面的分号去掉2,找到php-fpm的进程,并杀掉[root@localhost~]#psaux|grepphp-fpmroot10640.00.01786285552?SsJul310:21php-fpm:masterprocess(/usr/l
- mac安装redis-安装包方式
xialu
官网下载redis安装包官网下载地址:https://redis.io/download下载之后把安装包放到你想放到文件夹,例如:/Users/xialu/myfile/installs/redis-6.2.4.tar.gz解压:tarzxvfredis-6.2.4.tar.gz进入到解压好的文件夹:cd/Users/xialu/myfile/installs/redis-6.2.4编译安装:su
- linux安装单机版redis详细步骤,及python连接redis案例
数据知道
python3总结和案例数据库总结和案例linuxredispython
文章目录linux相关工具yum方式安装redis使用编译安装redis配置redis为systemctl启动其它:安装redis6.0python连接redis案例linux相关工具./redis-benchmark#用于进行redis性能测试的工具./redis-check-dump#用于修复出问题的dump.rdb文件./redis-cli#redis的客户端./redis-server#r
- 《Linux 简易速速上手小册》第4章: 包管理与软件安装(2024 最新版)
江帅帅
《Linux简易速速上手小册》linux运维服务器人工智能数据分析web3机器学习
文章目录4.1包管理基础4.1.1重点基础知识4.1.2重点案例:在Ubuntu上安装和管理软件4.1.3拓展案例1:添加软件仓库4.1.4拓展案例2:回滚软件到旧版本4.2使用APT与YUM4.2.1重点基础知识4.2.2重点案例:在Ubuntu上配置LAMP服务器4.2.3拓展案例1:在CentOS上配置开发环境4.2.4拓展案例2:使用APT自动清理不再需要的依赖4.3从源代码编译安装4.3
- Android 9 静默安装、卸载App
明天下
Android基础androidandroidstudio
文章目录引言安装流程实现代码AndroidManifest.xml配置apk运行打包放到源码目录下重新进行签名编译安装日志转载自Android9P静默安装/卸载App适配终极指南引言静默安装是指apk安装不需要用户手动点击,直接安装安装流程通过PackageManagerService获取getPackageInstaller对象通过packageInstaller调用openSession创建P
- nginx模块讲解
小雨喳
Nginx学习篇
nginx模块讲解一、编译安装nginx的http_stub_status_module监控其运行状态步骤:1编译nginx,加上参数--with-http_stub_status_module2修改nginx配置文件,添加监控状态配置,在nginx.conf的server块中添加如下代码location/nginx_status{#Turnonnginxstatsstub_statuson;#I
- Centos下nginx的安装
升职哦
Centos下nginx的安装ps:源码包下载、编译安装统一制定安装在/usr/local/src/路径下。操作命令推荐使用全路径,方便以后ps查看一、编译安装1.安装编辑工具及库文件zlib:gzip支持openssl:443,httpsyum-yinstallmakezlibzlib-develgcc-c++libtoolopensslopenssl-devel2.安装前置1).pcre安装(
- 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独立出来,数据持