- redis反弹shell时kali无法接收回弹的解决方法
显哥无敌
shellredis
无法接受回谈大概率是bash命令写的不对,那个crontab中间的星号个数是有意义的,不是随便加的,下面贴一下crontab的基本用法https://www.cnblogs.com/zhoading/p/11572630.html{minute}{hour}{day-of-month}{month}{day-of-week}{full-path-to-shell-script}如果是要cronta
- 排查解决腾讯云服务器存在对外攻击行为,已阻断该服务器对其他服务器端口(TCP:6379)的访问
【腾讯云】服务违规封禁提醒解决方法来自腾讯客服https://cloud.tencent.com/document/product/296/9604,这是我们给您的建议,建议您排查下您的服务器情况您现在登录上您的服务器了嘛您执行下crontab-l给我看下在执行netstat-ano|egrep"tcp|udp"redis端口这里有问题您执行netstat-tupln给我看下<
- 记录几个实用的网页工具
Donald_32e5
收录的几个还不错的网页工具一、图片背景转换可以把纯色的背景转化成透明背景传送门二、泼辣修图网页上传图片直接修图,工具还比较丰富,日常P图还是可以满足的传送门三、稿定抠图一款在线抠图的利器。傻瓜式抠图,简单方便传送门四、色彩笔图片在线压缩工具,精度还是比较不错的传送门五、crontab表达式输入表达式,查看执行结果传送门这个网站提供了很多网页工具,覆盖面是很广的。传送门
- 【开发日记】解放双手自动续期SSL证书
文章目录1.自动创建定时任务2.验证定时执行的命令3.修改定时执行的时间接上一个文章,如果看不懂本文,请先阅读前文:【开发日记】利用acme.sh获取免费泛域名SSL证书1.自动创建定时任务通过acme.sh--install-cert命令执行了自动化部署后,acme.sh会通过之前安装的cron自动创建一个定时任务。使用如下命令查看是否成功创建了定时任务:crontab-l正常结果显示应该是如下
- 记录一次使用crontab未执行的排错过程
目录一、过程复现1.命令有效性排查2.查看日志3.扩展测试4.问题解决二、总结一、过程复现我在学习使用crontab计划任务时,想实现每一分钟格式化输出一次当前日期和时间的效果,于是尝试:crontab-e*****date"+%F%T"#写入crontab-l*****date"+%F%T"#查看,确实写入了1.命令有效性排查然而我等了几分钟,屏幕上却没有任何输出,于是我在命令行手动执行一下这个
- Python 实战:构建本地多线程定时任务调度器
xiaocainiao881
python开发语言
引言在企业自动化流程、数据周期更新、本地脚本执行等场景中,定时任务调度器是不可或缺的一类工具。尽管Linux有crontab,Windows有任务计划,但它们不够灵活,缺乏图形界面,不适合动态启停、可视化控制等需求。本文将带你实现一个本地运行的多线程定时任务调度器,具备以下功能:一、项目功能说明1.1功能亮点多任务并行运行(非阻塞)每个任务支持独立间隔设置支持任务启动/停止/删除/修改支持即时日志
- Mac 电脑crontab执行定时任务【Python 实战】
qifengle2014
LinuxDockerJavaPython技术分享合集macospython开发语言
1、crontab-e编辑定时任务列表crontab-e查看当前定时任务列表,长按i编辑,编辑完之后按esc退出编辑,然后输入:wq保存并提出。如下:(base)charles@zl~%crontab-e5815***/Library/Frameworks/Python.framework/Versions/3.8/bin/python3/Users/charles/Documents/first
- 学习记录-第二阶段-定时任务-用户管理-用户密码-sudo-20181026-21:00前
chuyun0176
操作系统javashell
#企业故障案例###################################################################linux定时任务crondexport变量问题群友案例来自网友兄弟北京@Grady(254553457)的总结。1)我写了一个重启resin的脚本,由于业务原因,需要定时在某一个时间重启下resin服务器,于是就在crontab里配置了如下内容:50
- Linux 系统定时任务
平凡的梦
Linuxlinux服务器运维
在Linux中,定时任务通常通过cron服务来管理。cron是一个基于时间的任务调度程序,允许用户在特定的时间间隔执行命令或脚本。以下是关于Linux定时任务的一些基本信息和操作指南:cron基础cron表(crontab)crontab文件是用来定义定时任务的配置文件。每个用户(包括系统用户)都可以有自己的crontab文件。crontab语法每个crontab文件包含若干行,每行代表一个定时任
- Linux 定时任务
实现linux定时任务有:cron、anacron、at等,这里主要介绍cron服务。名词解释:cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表。软件包安装:要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下:vixie-cron软件包是cron的主程序。crontabs软件包是用来安装、卸装、或列举用来驱动cron守护
- linux 定时任务
小小小欣
crontab-e0*/1***/usr/bin/curlhttp://manage.baicmotorsales.com/Lists/clueData每一小时访问一次这个方法servicecrondrestart重启任务crontab-l查看定时任务tail-f/var/log/cron查看任务日志
- 脚本检测 自启 关闭 重启等 tomcat 可修改成其他程序 结合crontab 每天凌晨1点执行
梅孔立
tomcatfirefoxjava
#!/bin/bash#定义Tomcat的bin目录路径TOMCAT_BIN="/usr/local/tomcat/apache-tomcat-9/bin"#检查Tomcat是否正在运行PID=$(ps-ef|grep"tomcat/apache-tomcat-9/conf"|grep-vgrep|awk'{print$2}')if[-n"$PID"];thenecho"Tomcatisrunni
- 【Linux】定时任务 Crontab 与时间同步服务器
敖云岚
linux运维服务器
目录一、用户定时任务的创建与使用1.1用户定时任务的使用技巧1.2管理员对用户定时任务的管理1.3用户黑白名单的管理一、用户定时任务的创建与使用1.1用户定时任务的使用技巧第一步:查看服务基本信息systemctlstatuscrond.service//查看周期性计划任务的服务状态,runningsystemctlenable--nowcrond//设置周期性计划任务crond为开机自启动,并且
- 如何在linux系统重启或启动时执行命令或脚本
jghhh01
linux运维服务器
在Linux系统中,有多种方法可以在系统启动或重启时执行命令或脚本。以下是一些常见的方法:使用crontab:Crontab是一个用于设置周期性被执行的任务的工具。在crontab中,有一个特殊的时间字符串@reboot,它可以用来设置在系统启动时运行的任务。例如,如果你想在每次系统启动时运行/home/user/myscript.sh,你可以在crontab文件中添加以下行:@reboot/ho
- PostgreSQL数据库的自动化备份脚本编写与部署
数据库管理艺术
数据库专家之路大数据AI人工智能MCP&AgentSQL实战数据库postgresql自动化ai
PostgreSQL数据库的自动化备份脚本编写与部署关键词:PostgreSQL、自动化备份、pg_dump、crontab、数据库运维摘要:数据库是企业的“数字心脏”,一旦数据丢失可能导致不可挽回的损失。本文将用“给小学生讲故事”的方式,从备份的重要性出发,逐步讲解如何编写PostgreSQL自动化备份脚本(含全量备份、压缩、日志记录、旧文件清理),并通过crontab实现定时执行。无论你是刚接
- linux计划任务详解,Linux计划任务详解
鹤栖梧桐
linux计划任务详解
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。在Linux系统中,当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过Linux计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。计划任务在Linux中一般使用Crontab,通过crontab命令,我们可以在固定
- 基于飞书webHook机器人实现shell脚本监听端口并报警
神志不清.
运维脚本服务器监控linux服务器bash运维
今天zabbix报警不知道什么原因端口挂了3个却没报警,经过我的决定准备对端口这种重要性监控增加报警手段。以下脚本内容可实现端口报警,配合计划任务crontab-e来制定自己监听的频率我的是每分钟都执行一次#!/bin/bash#端口预警脚本date=$(date"+%Y-%m-%d%H:%M:%S")#根据实际情况修改webhook飞书地址webhook="https://open.feishu
- esxi 自动给虚拟机打快照(定时快照任务)
zz960226
esxivimlinux
esxi重启之后会清除/vmfs/volumes目录以外的文件,故需将脚本放在/vmfs/volumes/datastore1目录中1.添加新增快照和删除快照的命令cd/vmfs/volumes/datastore1mkdircrontabscdcrontabstouchsnapshot_creat.shvisnapshot_creat.sh新建快照的脚本将以下内容复制粘贴至即可snapshot_
- workerman 定时器
杰_happy
Workerman框架workermanphp
workerman定时器例子,可单独使用,稍加改善可以开启一个守护进程,用来做一些定时发布等等类似的任务,使用方便,不需要额外的扩展或者类似crontab等工具。以下是测试程序:loop();functionhello($a,$b){echo$a.'==='.$b;}
- Linux Cron定时任务设置指南
Leon_Jinhai_Sun
linux
SCRIPT_PATH="/var/dpcrestart.sh"CRON_SCHEDULE="*/5****"CRON_JOB="${CRON_SCHEDULE}/bin/bash${SCRIPT_PATH}"CURRENT_CRON=$(crontab-l2>/dev/null)ifecho"$CURRENT_CRON"|grep-qE"${CRON_SCHEDULE}.*${SCRIPT_PA
- Linux用Cron定时任务保活Nginx
秦时明月之君临天下
LinuxNginxlinuxnginx服务器
文章目录背景处理措施命令详解总结背景今天发现个人网站挂了,进服务器才发现nginx进程都不在,后面才想起来:上次重启服务器没有重启nginx服务,但是因为一直没看网站,导致挂了有一段时间了。处理措施为了方便,想用crontab搞个定时任务,检测到nginx进程不在时,去启动一下。*/5****pgrepnginx||/usr/sbin/nginx-c/etc/nginx/nginx.conf命令详
- python钉钉自动打卡_Python实现i人事自动打卡
weixin_39860260
python钉钉自动打卡
我司使用的打卡软件是i人事,不过我这记性,经常漏了打卡签退,定了闹钟都会忘,今天又被老大屌了。于是准备抓一下签到接口,利用crontab来实现自动签到签退。环境配置这里使用的是Fiddler进行抓包,Fiddler是一个HTTP调试代理工具,以代理服务器的形式实现对网络数据流的监听。之所以没有用Wireshark,一是因为我不是很熟悉wireshark的筛选器,二是因为本文使用模拟器(手机应用后台
- crontab 表达式定时不执行问题处理(已亲测)
devil_mf
linux运维服务器
crontab表达式科普小知识:cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。crontab表达式说明:*****[user][command]-----||||||||||||||+-----星期(0-7)(Sunday=0or7)|||+----------月(1-12)||+---------------日(1-3crontab命令实例00L**#每月的最后1
- linux crontab定时执行python找不到module问题解决
Leo_Hu666
linuxpython
1.报错配置:30****python3/opt/es-prd-read/es_read_hits_by_timestr_prd.py2.程序情况:本地window执行正常;生产linux服务器手动执行正常;linuxcrontab定时执行报错,找不到module;Traceback(mostrecentcalllast):File“/opt/es-prd-read/es_read_hits_by
- 嵌入式开发之Linux学习笔记day12
小程同学>o<
嵌入式学习之Linuxlinux学习笔记
硬件监控(二)1内存及监控页面1.1free指令1.2top查看系统健康状态2网络端口号占用监控3定时任务3.1crontab服务管理3.2crontab定时任务设置1内存及监控页面1.1free指令1)基本语法free-m(功能描述:查看服务器总体内存)2)案例实操cheng@cheng-virtual-machine:~/桌面$free-mtotalusedfreesharedbuff/cac
- Failed opening the RDB file crontab (in server root dir /etc) for saving: Permission denied
洗发水很好用
dockerredis
今天查看docker容器部署的redis运行日志发现一直报错8184:C17Jul202421:56:20.072#FailedopeningtheRDBfilecrontab(inserverrootdir/etc)forsaving:Permissiondenied1:M17Jul202421:56:20.172#Backgroundsavingerror1:M17Jul202421:56:2
- unix的定时任务和quartz和spring schedule的cron表达式区别
June561
unixspring服务器
一、核心区别对比表对比项UnixCrontabQuartzSpring@Scheduled表达式位数5位6位或7位6位秒级支持❌不支持(最小单位是分钟)✅支持✅支持年字段❌无✅可选第7位❌不支持特殊符号支持较少(如*,,,-,/)很丰富和Quartz类似使用环境Linux系统层JavaJob框架Spring应用内部调度典型用法系统定时任务分布式定时任务调度Java/SpringBean定时执行二、
- linux设置定时任务 不自动执行脚本,crontab的定时任务不能自动执行,但是手动执行脚本一直能成功...
苟渝
linux设置定时任务不自动执行脚本
crontab问题小记:环境变量问题,养成良好的习惯,在脚本开头exportPATH原因是crontab执行定时任务时,用的不是系统环境变量,而是自己的环境变量,可以把echo$PATH加入crontab输出到日志中查看所以一些自己写的工具,或是系统命令,执行的时候写绝对路径,或是简单点脚本开头加载./etc/profile-------------------更新----------------
- 树莓派 cron 定时任务 设置定时开关脚本 我的是有图形界面(tk) 系统环境
fengwenyuan123
树莓派linuxpython
cron是Linux/Unix系统里的一个守护进程(后台程序),专门用来定时执行你指定的任务(命令、脚本等)。你把想定时执行的命令写到crontab(cron表)里,cron会根据你设定的时间点自动触发执行。测试脚本:main.pyimporttkinterastkfromdatetimeimportdatetimedefupdate_time():now=datetime.now().strft
- 服务器定时任务查看和编辑
清幽竹客
服务器服务器ubuntu
在Ubuntu系统中,查看当前系统中已开启的定时任务主要有以下几种方式,分别针对不同类型的定时任务管理方式(如crontab、systemdtimer等):查看服务器定时任务一、查看用户级别的Crontab任务每个用户都可以配置自己的定时任务:crontab-l查看其他用户的定时任务:sudocrontab-u用户名-l二、查看系统级别的Crontab任务系统级任务配置通常放在以下几个文件中:ca
- 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独立出来,数据持