- K8S 发布应用
灼烧的疯狂
云原生kubernetes容器云原生
前言昨儿个用unbuntu20.04又装了一次K8S用的kubeadm+containerd+Cilium(CNI)又重新撸了一遍这里只记录应用发布的笔记正文#创建deploymentkubectlcreatedeploymentnginx--image=nginx#我这边大约30秒后显示为readykubectlgetdeploymentskubectldescribedeploymentngi
- java基础docker镜像精简
微凉哇
制作jre基础镜像alpine简介由于项目基于springboot需要jre环境支撑,出于镜像大小考虑,若采用unbuntu或者centos作为基础镜像,会很大,在需要传输的场景中非常的不方便。所以这里采用alpine作为基础镜像,alpine是一个轻量级的linux系统,镜像大小5M左右。image下载jre制作java项目运行环境jdk大小200M左右jdk大小70M+#由于仅需要Java运行
- python笔试面试项目实战2020百练13-去掉字符串中连续的重复字母
python测试开发
字符串字符串是Python中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1='HelloWorld!'var2="PythonRunoob"去掉字符串中连续的重复字母2,编程题--此题如能在本机(unbuntu)上调试出来更佳。请使用python、java等定义一个函数或方法来去掉字符串中连续的重复字母,函数体以一行为佳。以py
- Unbutu网卡驱动安装(Intel内置网卡8086:15b8)
向晚流年
Linux~每天一点点儿
工作中需要在新的实验平台上安装unbuntu14.04操作系统,系统安装好之后发现无法连接网络,分析后是由于缺少网卡驱动的原因。下面把分析问题的过程及安装网卡驱动步骤介绍如下:查看PCI信息sudolspci
- 基于VMware和Unbuntu18.04编译 嘉立创·泰山派 Linux SDK
夜魔009
技术泰山派UnbuntuLinuxSDK编译嘉立创
主机硬件要求内存最少32G硬盘腾出200-500G,虽然编译最终占了73G,但富余一些以后可以搞别的方便操作系统win7/10/11VMware安装1.去vmware官网下载:https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/16_0
- 【Linux】解决Ubuntu桌面侧边栏不见的问题
beidou111
#Linux
control+alt+T打开终端输入ccsm(如果没有就sudoapt-getinstallccsm下载一个)打开ccsm的窗口以后点击右下Desktp里面的UbuntuUnityPlugin点击EnableUnbuntuUnityPlugin(勾选上)出现Ignoreconflicts然后重启或者logout一下就好了
- Linux基础配置
帝乙岩
开发环境安装linux运维服务器
文章目录说明1.安装ifconfig和vim命令2.设置root密码3.设置允许root用户密码登录4.网络配置5.设置时间同步6.关闭防火墙7.主机名与IP地址的映射说明配置基于ubuntu22版本,当前unbuntu18+适用,后续安装持续更新1.安装ifconfig和vim命令sudoaptinstallnet-toolssudoaptinstallvim对ubuntuserver配置2.设
- ubuntu系统笔记导览
zhenz0729
ubuntu系统ubuntu
本笔记主要是为了方便查找和回顾学习,如果后续该系列更新时会同步更新在此导览中。ubuntu系统中Error:Nospaceleftondevice,解决办法:挂载大容量sda分区_unbuntu编译报错设备上没空间-CSDN博客ubuntu系统(2):ubuntu20.04更换为国内清华源_20.04清华源-CSDN博客ubuntu系统(3):制作ubuntu20.04启动盘并在PC上安装_ubu
- RustDesk自建远程服务器(全网最详细小白教学)
仅对她温柔
windows服务器运维开发前端
以Win10远程Ubuntu为例一、下载安装客户端分别在windows和unbuntu安装RustDesk客户端,下面是官网地址。RustDesk|开源远程桌面软件https://rustdesk.com/zh/二、unbuntu设置开机运行RuskDesk的路径查看方式,在终端使用typerustdesk命令查看输入命令:gnome-session-properties打开启动应用程序首选项窗口
- 五步解决Ubuntu界面太小的问题
Code_流苏
#Ubuntuubuntulinux运维
名人说:莫听穿林打叶声,何妨吟啸且徐行。——苏轼《定风波·莫听穿林打叶声》Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)对于20版本及以上的unbuntu我们可以通过安装open-vm-tools来解决界面大小的问题,具体步骤如下:1.sudoapt-getupdate2.sudosu3.apt-getinstallopen-vm-tools4.apt-getinstallopen
- 001 Linux中找不到动态库问题分析
hunandede
ubuntu
在安装openssl到unbuntu的时候遇到问题。将前因后果和自己的分析记录一下。前提:安装openssl到unbuntu,使用源码方式完成。下载安装包https://www.openssl.org/source/将安装包放在unbuntu的目录下,习惯将用的开发相关工具放在Desktop/tool下新建文件夹:/home/hunandede/Desktop/tool/openssl通过file
- 服务器 长时间未重启导致 反应迟缓
Sharon_0403
今日发现rocketchat网页端反应迟缓,移动端收发消息出现高延迟问题。对服务器进行了重启,并在ubuntu系统下建立每日重启事件。参考网址:unbuntu自动任务定时重启-东方飘雪-博客园(cnblogs.com)1.2步骤图1.进行sudo权限。2.编辑crontab文件3.使crontab文件生效3步骤图查看服务器重启时间:参考:(9条消息)linux系统重启查看日志及历史记录_gzy19
- Unbuntu18.04 配置DPDK
birate_小小人生
DPDK网络linux服务器
文章目录1.VMware添加网卡2.修改ubuntu系统的启动参数(设置巨页)3.编译DPDK1.VMware添加网卡网络适配器配置成桥接模式,为DPDK准备的,网络适配器3配置成NAT模式为ssh准备的。后台服务器:https://course.0voice.com/v1/course/intro?courseId=5&agentId=0修改网卡的配置信息:在虚拟机关机状态下,修改虚拟机的.vm
- Anconda环境中python默认不是该环境下的python
熊熊dsh
python开发语言ubuntu
(我的操作环境是Unbuntu,不知道windows中是否适用)最近遇到一个比较困扰的问题,Anconda中自己环境下使用python和pip时,默认使用的不是该环境下的python和pip,以至于每次跑程序我都需要在python前加一长串的路径。解决方法并不难,首先进入/root/profile,可以使用vim指令进行查看和修改,或者gedit等其它命令。vim的基本操作,大家可以看下面的这个博
- ffplay播放音频失败问题
hurryup911
今天在尝试编译ffmpeg后,用ffplay来播放媒体文件,将遇到的问题记录一下1、./configure遇到ffmpegyasmnotfound,use--disable-yasmforacrippledbuild问题解决方法:由于ffmpeg使用了汇编指令,需要安装对应的库,我是用unbuntu,使用sudoapt-getinstallyasm指令安装即可.2、编译后的ffmpeg,你会发下只
- wsl 搞 centos
徐图进取
之前用win7然后开vbox虚拟机装centos7来搞php的代码环境。机器配置还是低了点,有时候会比较卡,果断重装了系统win10也是要与时俱进的。最近用wsl搞了centos7,总结下重点吧起初是直接用的unbuntu毕竟不太熟悉,后来转了centos7至于怎么装centos7,我是参考了别人的文章。https://www.jianshu.com/p/50aec686100ehttps://w
- Ubuntu20.04.2-mate上Lazarus安装与测试
Mongnewer
Lazarusubuntu
简言Lazarus采用RAD方式界面开发,一套代码可交差编译出windows、ios、android、solaris、BSD等各平台运行的程序,在unbuntu的repo中有2.2.0版本可用,在sourceforge上有2.2.6版本和3.0.0的Rolling版可下载安装,但感觉上2.2.0和2.2.6版本几乎没什么差异,从repo中安装更方便快捷。安装sudoaptinstalllazaru
- 【XR806开发板试用】+Linux小白上手开发笔记(2)——阿里云云方案
极术社区
开发板测评linux笔记运维
##0、前言在之前文章中提到,在windows中搭建unbuntu对于新手小白来说非常不友好。因此一直在找解决方案,找到一条非常有意思的方案。希望对大家有点帮助。1、环境搭建方案核心————阿里云云具体步骤如下:step1:注册。由极术社区----开发平台登入setp2:选择合适的云(免费最重要)setp3:配置云服务器。跟着指导走就行,不花钱就好~~注意选择系统,选择Ubuntu20或者22跟着
- unbuntu下安装运行服务
chujinmaolu
服务器node.js
一、unbuntu下数据库安装(\是换行的意思,中间就是空格)1)、docker安装及相关配置1、安装相关的工具sudoapt-getinstallca-certificatescurlgnupglsb-release2、添加docker官方GPG秘钥sudomkdir-p/etc/apt/keyrings3、设置源curl-fsSLhttps://download.docker.com/linu
- VMware如何导出和导入镜像OVF虚拟机(以unbuntu为例)
阿里嘎多f
Linuxlinux服务器
前言:我下载了一个unbuntu的系统镜像,基于这个镜像创建了一个unbuntu的虚拟机,辛辛苦苦配置需要的开发环境,如:安装了mysql,安装了jdk等,此时,我的同事可能需要也是同一套类似环境,这个时候,就可以导出ovf文件给他使用,只要他将我给他ovf文件进行导入,就无需进行相关开发环境配置。一.OVF作用保存当前虚拟机的状态。利用ovf还原虚拟机状态。二.导出ovf选择要导出的虚拟机选择文
- oracle安装搜狗输入法教程,Unbuntu16.04安装搜狗拼音输入法的图文教程
weixin_39890633
oracle安装搜狗输入法教程
Unbuntu16.04安装搜狗拼音输入法的图文教程为了让自己的电脑相对安全一些,我安装了ubuntu的物理机因为要经常输入汉字,我就在unbuntu里面安装了搜狗输入法1.在搜狗输入法官网下载Linux版本的安装包:http://pinyin.sogou.com/linux/,记住下载自己机子对应的版本(看清楚是32位还是64位)2.找到文件,然后终端敲击命令:sudodpkg-isogoupi
- k8s部署harbor
墨家先生
k8skubernetes
目录前言安装验证安装配置containerd(所有服务器)unbuntu22.04添加CA证书(所有服务器)测试前言k8s集群搭建参考:https://blog.csdn.net/centrl/article/details/134291473整合helm参考:https://blog.csdn.net/centrl/article/details/134293363安装nfs参考:https:/
- Vscode remote-ssh连接Unbuntu
追梦者( '▿ ' )
笔记sshvscode服务器
Linux下/etc/ssh/ssh_config和sshd_config配置文件区别远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是?以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(SecureShell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SS
- Ubuntu18.04+ROS melodic 控制UR5机器人(持续更新)
玉米烙不加玉米谢谢
ROS机器人研究ubuntu
目录0前言1前置准备工作1.1环境配置1.1.1使用虚拟机安装Ubuntu系统1.1.2ROSmelodic安装1.2工作空间配置1.2.1创建工作空间1.2.2导入Github仓库并更新依赖包1.2.3编译、激活、启动2仿真环境2.1Rivz可视化界面2.2基于Python的轨迹规划2.2.1Unbuntu环境下的IDE安装2.2.2配置Pycharm项目2.2.3使用Python脚本在仿真环境
- Unbuntu系统配置Python Qt 环境(PySide2/PyQt5/PySide6)
___Rookie___
PyQtubuntulinuxpythonqtui
目录前言一、开始配置前需要下载的内容二、下载安装Pyside61.配置Python3.8.102.安装PySide63.异常解决4.测试前言针对时下流行的人工智能——深度学习等项目场景,往往需要类似于PyQt5这样的GUI平台作为支撑,本文主要为大家介绍如何在Ubuntu系统当中进行诸如PyQt5/PySide2/PySide6等QtGUI界面的环境搭建和配置。这里我们主要以PySide6为例,在
- IgH Master环境搭建
geshifei
ethercatEtherCAT
目标:实时linux内核中运行IgH主站,ethercat的用户态工具能看到主站信息。一、需要的软件1,vbox虚拟机https://www.virtualbox.org/,下载VirtualBox7.0,备注:windows中不要用wsl开发,wsl运行unbuntu后,没有grub相关的目录,update-grub无法正确更新引导分区。2,Ubuntu20.04http://releases.
- 如何建立并使用docker
机器人梦想家
Dockerdockerlinux
如何建立并使用docker文章目录引言实现安装Docker下载构建启动容器并测试总结引言本文基本是在深入浅出Docker的基础上增加自己的理解下写出来的。本篇主要说明如何运行一个Docker程序。实现安装Docker在unbuntu/debian上面安装docker肥肠简单。。首先确保自己的linux内核是3.10以上的版本,输入命令查看内核版本uname-a建议切换为阿里云镜像,镜像比较广下载速
- linux虚拟串口创建,linux虚拟串口编程
weixin_39668470
linux虚拟串口创建
环境:unbuntu14虚拟机,已设置可联网目的1:在linux环境下读写虚拟串口(2虚拟串口连接)步骤:一,创建虚拟串口1.安装虚拟软件apt-getinstallsocat2.创建虚拟串口socat-d-dpty,raw,echo=0pty,raw,echo=0二,串口读写测试-echo测试写串口:echo设备读串口:cat设备参考文档:https://blog.csdn.net/rainer
- unbuntu安装QT教程
爱笑的木头
ubuntu
需要按此教程安装,不然编译不通过,很坑UbuntuQT5.9.0安装_ubuntu安装qt5.9-CSDN博客
- Unbuntu安装、测试和卸载gcc11
小林up
LinuxgccUbuntu安装测试卸载
GCC可用于编译C、C++,本文介绍如何Ubuntu上安装gcc11、测试和卸载它。1.在Ubuntu上安装gcc11添加工具链存储库sudoadd-apt-repository-yppa:ubuntu-toolchain-r/test在Ubuntu上安装gcc11sudoaptinstall-ygcc-11验证gcc11版本gcc-11--version2.在Ubuntu上测试gcc11这里只是
- 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独立出来,数据持