- Linux系统配置(应用程序)
1风天云月
Linuxlinux应用程序编译安装rpmhttp
目录前言一、应用程序概述1、命令与程序的关系2、程序的组成3、软件包封装类型二、RPM1、RPM概述2、RPM用法三、编译安装1、解包2、配置3、编译4、安装5、启用httpd服务结语前言在Linux中的应用程序被视为将软件包安装到系统中后产生的各种文档,其中包括可执行文件、配置文件、用户手册等内容,这些文档被组织为一个有机的整体,为用户提供特定的功能,因此对于“安装软件包”与“安装应用程序”这两
- Linux(Centos 7.6)命令详解:sz
豆是浪个
linuxcentos运维
1.命令作用使用ZMODEM/YMODEM/XMODEM协议发送文件(Sendfile(s)withZMODEM/YMODEM/XMODEMprotocol)注意:需要yuminstalllrzsz(yumprovidessz可以查看rz命令是什么rpm包提供的)2.命令语法Usage:sz[options]file...or:sz[options]-{c|i}COMMAND3.参数详解OPTIO
- 使用sealos进行k8s集群部署和sealos集群部署失败
七七powerful
centoslinux运维
下载Sealos命令行工具使用RPM源进行安装查看操作系统版本[root@master01~]#uname-aLinuxmaster014.18.0-553.52.1.0.1.an8.x86_64#1SMPThuMay1515:49:42CST2025x86_64x86_64x86_64GNU/Linux[root@master01~]#cat/etc/os-releaseNAME="Anolis
- Linux 常用命令大全
用什么都重名
Linux系统相关linux运维服务器
目录1.开关机2.系统信息3.系统性能4.系统安全5.文件和目录6.文件权限7.文件查找8.查看文件的内容8.1查看日志常用8.2其他查看文件的内容9.文本处理10.用户与权限11.磁盘管理12.压缩、解压和打包备份13.软件安装13.1二进制(Binaries)包13.1.1yum安装13.1.2rpm包手动下载安装13.1.3apt方式安装13.1.4deb包安装13.1.5解压即用13.1.
- 深入理解 eMMC RPMB 与 OP-TEE 在 Linux 系统中的应用开发
CheungChunChiu
linux运维服务器androidop-tee
可信执行环境(TEE)和安全存储机制在现代嵌入式系统和ARM平台中日益重要。尤其是在RK3588等SoC上,eMMC的RPMB区域和OP-TEE的结合,成为构建安全可信机制的核心基础。本篇文章将系统性地介绍相关原理、工具链、开发结构与实际使用案例。什么是RPMB?为什么重要?RPMB(ReplayProtectedMemoryBlock)是eMMC或UFS存储中的一个专用硬件分区,特点如下:✅不可
- Centos7 安装RabbitMQ
qq_38304878
rabbitmqcentos
RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,安装RabbitMQ还需要安装Erlang环境;需要注意一点,RabbitMQ的版本要和Erlang版本匹配才行,否则容易产生冲突,适配版本对照可以参考官方网站,点击跳转。准备安装包在官网进行下载RabbitMQ安装包,rabbitMQ点击下载,选择对应版本下载后会得到.rpm文件。这里我们以rabbitmq3.8和erl
- vi编辑器怎么设置tab缩进
星chen
vi编辑器怎么设置tab缩进首先,在命令中输入vim~/.vimrc按i进入编辑模式,输入settabstop=4按Esc进入命令模式,输入:wq保存退出即可。sudoaptinstallrpmvim显示行号、语法高亮、自动缩进的设置转载自:http://blog.csdn.net/chuanj1985/article/details/6873830在UBUNTU中vim的配置文件存放在/etc/
- Linux Mysql安装
MuYan~
linux运维服务器
安装过很多次了,只是每次安装都要搜一下,这次就稍微记录一下吧。本系统采用LinuxRocky9.3(与CentOS7差不多,注:2024CentOS7即将停止维护)接下来开始吧,傻瓜式。1.更新软件包dnfupgrade--refresh-y这是一条Linux命令,用于升级系统软件包。具体来说:dnf是一种基于RPM的软件包管理器,用于Fedora和基于其的发行版。upgrade参数表示升级软件包
- MYSQL操作简单易懂
一、安装mysql(rocky9为例)实例1、下载并安装mysql官方仓库wgethttps://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm2、下载安装的仓库sudorpm-ivhmysql80-community-release-el9-1.noarch.rpm3、使用sudo命令和yum命令安装MySQL8:sudoyu
- 113.Impala ODBC驱动的安装及配置
大勇任卷舒
113.1unixODBC依赖包的安装检查是否安装unixODBC包$rpm-qa|grep-iunixodbc安装unixODBC依赖包$sudoyum-yinstallunixODBCunixODBC-devel查看unixODBC配置文件路径$odbcinst-j113.2ImpalaODBC驱动安装ImpalaODBC驱动$wgethttps://downloads.cloudera.co
- gitlab修改DNS解析配置文件
中东大鹅
gitlablinuxgit
在Linux(CentOS7.9)云服务器上解压gitlab时提示需要Python的环境[root@rainyun-v1vct1josrc]#rpm-ivhgitlab-ce-10.8.4-ce.0.el7.x86_64.rpmwarning:gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm:HeaderV4RSA/SHA1Signature,keyIDf27eab47:N
- 阿里云RDS MySQL物理备份文件恢复到自建数据库
官方文档RDSMySQL物理备份用XtraBackup恢复到自建数据库_云数据库RDS(RDS)-阿里云帮助中心通过Percona官方仓库来安装最新版本的xtrabackup:(如果没安装)#添加Percona仓库sudoyuminstallhttps://repo.percona.com/yum/percona-release-latest.noarch.rpmsudopercona-relea
- Oracle ERP MetaERP采购PO 后台表
anpeng2025
华为MetaERPSAP专题OracleERPoracleOracleERP数据库sap算法
OracleERPMetaERP采购PO后台表TABLE-PO.EDW_PO_VENDOR_HIERARCHIESTABLE-PO.FND_FUNCTION_PARAMETER_MAPTABLE-PO.FND_NOTIFICATIONSTABLE-PO.POA_BIS_SAVINGSTABLE-PO.POA_BIS_SAVINGS_EFCTABLE-PO.POA_BIS_SAVINGS_RPTTA
- MATLAB最优滤波器设计函数firpm的使用详解
codersnote
编程小识matlab算法最优滤波器firpmkaiserord
窗函数法设计的缺点无法选择过渡带、通带、阻带衰减等指标阶数不是最优的凯塞窗[n,wn,beta,ftype]=kaiserord(f,a,dev);h_kaiser=fir1(n,wn
- Filebeat + Logstash + ES进行Nginx日志采集
一个只会喊666的菜比
简易架构图service.png架构图比较简单,日志收集大同小异,这次不添加任何中间服务比如:rediskafka后端只是存储进ES使用的版本jdk-8u161-linux-x64.rpmelasticsearch-6.7.2.rpmlogstash-6.7.2.rpmfilebeat-6.7.2-x86_64.rpm安装比较简单,只用进行rpm-ivh即可,接下来直接贴配置文件:Elastics
- centos8.4使用本地yum源安装提示:Error: No available modular metadata for modular package
付兄
linuxcentos
安装modulemd-toolsmodulemd-tools安装和使用详细过程参考官方文档https://github.com/rpm-software-management/modulemd-tools。更换centos8.4yum源wget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-8.re
- Day04_C语言网络编程20250716_sql语言大全
liujing10232929
C语言网络编程c语言网络sql
linux中sql语法大全:MYSQL数据库什么是数据库:关系型数据管理系统数据库的结构层次:数据库文件(后缀名.db)->表单->字段->存储的数据数据库里面针对数据的所有操作,都需要使用指令去实现MYSQL数据库特点:特别适合web的环境,和PHP结合非常好低版本的MYSQL依旧是开源软件,适合用来做二次开发先安装一下mysql安装前,检测是否安装了mysql:rpm–qa|grepmysql
- linux安装Node.js 环境,Docker 环境,Ruby 环境,MongoDB 环境,PostgreSQL 数据库,Go 开发环境,Python 虚拟环境
2401_87017622
数据库linuxnode.js
在Linux上安装其他常见的开发环境可以根据具体需求而定,以下是一些常见的安装步骤:1.Node.js环境Node.js是一个基于ChromeV8引擎的JavaScript运行环境,适用于服务器端开发。安装Node.js:通过包管理器安装:sudoyuminstall-ygcc-c++makecurl-sLhttps://rpm.nodesource.com/setup_14.x|sudo-Eba
- centos7 安装yum环境时 最后两个包一块安装的命令
醋留香
后面的2个包,是互相依赖,所以一起安装rpm--nodeps--force-ivhyum-3.4.3-154.el7.centos.noarch.rpmyum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm(--nodeps--force强制安装)安装完后,查看yum安装情况yum-V
- centos7安装 mysql5.7(安装包)
heiPony
linuxmysqlmariadbcentosmysql
一.卸载centos7自带数据库查看系统自带的Mariadbrpm-qa|grepmariadbmariadb-libs-5.5.44-2.el7.centos.x86_64卸载rpm-e--nodepsmariadb-libs-5.5.44-2.el7.centos.x86_64删除etc目录下的my.cnfrm/etc/my.cnf二.检查mysql是否存在(有就卸载,删除相关文件)rpm-q
- Linux/Centos7离线安装并配置MySQL 5.7
有事开摆无事百杜同学
LInux/CentOS7linuxmysql运维
Linux/Centos7离线安装并配置MySQL5.7超详细教程一、环境准备1.下载MySQL5.7离线包2.使用rpm工具卸载MariaDB(避免冲突)3.创建系统级别的MySQL专用用户二、安装与配置1.解压并重命名MySQL目录2.创建数据目录和配置文件3.设置目录权限4.初始化MySQL5.配置启动脚本6.配置环境变量三、启动与验证1.启动MySQL服务2.获取初始密码3.登录并修改密码
- 在ARM46+KylinOS下安装配置Docker的详细步骤
Q_Daniooi
docker容器运维
目录一、安装前准备(一)环境检查(二)依赖准备二、Docker安装步骤(一)添加Docker官方源(以Debian分支银河麒麟为例,RPM系类似调整)(二)安装Docker引擎(三)启动与基础配置三、Docker优化配置(可选但推荐)(一)镜像加速(二)存储驱动优化四、注意事项(一)系统兼容性(二)网络与镜像源(三)权限与安全(四)ARM架构特殊点五、经常遇见的问题及解决方法六、学习经验分享一、前
- 每日MySQL之005:SUSE linux下卸载MySQL
卸载这里的卸载,对应于之前的安装停止MySQL服务:db2a:~#servicemysqlstop找到所有的MySQL包:db2a:~#rpm-qa|grep-imysqlmysql-community-server-5.7.19-1.sles11mysql-community-common-5.7.19-1.sles11libqt4-sql-mysql-4.6.3-5.34.2mysql-com
- CentOs7 安装mysql5.7
❀͜͡傀儡师
mysql
1.卸载原系统中的mariadb……首先执行命令rpm-qa|grepmariadb查看是否有mariadb的安装包,没有可以不管接下来,执行rpm-e--nodepsmariadb-libs#删除掉下载mysql5.7安装包1.前往官方网站复制yum源链接Mysql官网然后鼠标右键粘贴wget执行wgetwgethttps://dev.mysql.com/get/mysql80-communit
- centos7下安装 mysql5.7
ammengke
mysql数据库服务器
在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1.下载并安装MySQL官方的YumRepository1[root@BrianZhu/]#wget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- 史上最硬核!RPM与DPKG依赖地狱终极解决方案
芯作者
D2:ubuntulinuxubuntu服务器运维
系统管理员最深的恐惧:当你执行aptinstall或yumupdate时,屏幕上跳出那段令人窒息的红色文字——依赖关系不满足!**依赖问题的本质剖析在Linux系统中,软件包管理器的依赖关系解析本质上是一个NP完全问题。当系统中存在数千个软件包时,解决依赖关系的计算复杂度呈指数级增长。这就是为什么简单的安装命令有时会陷入数十分钟的计算,甚至以失败告终。
- arm架构离线部署docker
月慕向阳
arm开发
1.首先检查服务器glibc版本 rpm-qglibc如果glibc-2.35版本以上,则参考下面安装步骤,包下载地址链接:https://pan.baidu.com/s/1X64XrzRva0O7ZSekLZdIcA?pwd=8k4c提取码:8k4cglibc-2.35以上Docker离线安装如下mkdir/opt/dockercd/opt/docker#上传docker-engine-18.0
- 【华为昇腾|CUDA】服务器A6000显卡部署LLM实战记录
刘阿宾
技能备忘服务器语言模型华为gpu算力kylin
安装驱动https://www.nvidia.cn/drivers/lookup/搜索对应gpu的kylin版本即可先使用wget下载rpm包rpm-i安装最后使用dnfinstallnvidia-driver即可上面安装的是驱动仓库安装CUDAkylin服务器参考配置同上,先wget,后rpm-i,最后dnfinstallcuda即可安装Ollamaollama官方提供aarch64docker
- 【无标题】
KellenKellenHao
tomcatjava
一、tomcat安装 #关闭防火墙与SELinux [root@proxy_host~]#rz rzwaitingtoreceive.**[root@proxy_host~]#ls anaconda-ks.cfg ceph-release-1-1.el7.noarch.rpm apache-tomcat-8.5.40.tar.gznginx-1.27.3.tar.gz #解压到指定路径
- ipmitool使用手册
刺痛小白
开发语言linux
一、安装#安装ipmitoolyuminstallipmitool–y#检测ipmitool是否安装成功rpm-qaipmitool三、使用命令及参数二、报错处理:Couldnotopendeviceat/dev/ipmi0or/dev/ipmi/0or/dev/ipmidev/0:Nosuchfileordirectory解决办法:需要加载相关模块查看先关模块是否加载(可以看出模块未加载)lsm
- 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独立出来,数据持