未经许可,不得转载。文章目录漏洞介绍正文工具漏洞介绍CVE-2019-9670是一个与ZimbraCollaborationSuite(ZCS)相关的严重漏洞。ZCS中的AutoDiscover服务存在不正确的XML解析处理,该漏洞可被利用来注入恶意XML代码(例如外部实体注入(XXE)攻击),从而导致服务器任意文件读取或远程代码执行(RCE)。Zimbra]>
第 2-2 课:深入探究底层原理,应用更加得心应手
Java大联盟
案例上手Spring全家桶SpringSpringBootSpringCloudSpringMVCSpringSpringBootSpring
前言上一讲我们学习了SpringMVC框架的使用,为了更好地理解这个框架,本讲来仿写一个SpringMVC框架,用到的技术比较简单,只需要XML解析+反射就可以完成,不需要JDK动态代理。自己手写框架的前提是必须理解框架的底层原理和运行机制,因此我们还是先来回顾一下SpringMVC的实现原理。SpringMVC实现原理SpringMVC的核心组件和工作流程的内容具体可以参考第2-1讲的内容,通过
Java 中处理 XML 文件
goTsHgo
JavabasicJavajavaxml前端
在Java中处理XML文件,通常使用两种主要的解析方式:DOM解析和SAX解析。每种解析方式各有优劣,适用于不同的场景。下面详细解释这两种XML解析方法的基本原理、适用场景、共性规律、注意事项和特殊技巧。1.DOM解析(DocumentObjectModel)基本原理DOM解析是一种基于内存的解析方式。它会将整个XML文档一次性加载到内存中,构建一个树形结构,表示XML文档的层次关系。开发者可以遍
【原创】Unity3D 游戏项目实例教程之 Xml 数据解析器
chuiyanbang9039
游戏
由于自己项目中使用XML作为配置文件,为了解析起来方便,其实更加方便的是解析XML的.cs文件都通过程序去生成,读者可以自己去实现,下面是XML解析器,仅供大家参考!先来看看最终使用例子的代码(在我们的项目中,我们需要借助上一篇的资源加载管理器来预先加载我们的配置文件):using UnityEngine;using System.Collections;public class LoaderXm
5、设计与实现资源加载器,从Spring.xml解析和注册Bean对象
大树~~
#Spring手写系列数据库java开发语言spring后端
在Spring框架的核心设计中,Bean工厂和资源加载器是两个非常重要的模块。理解它们的设计和实现对于掌握Spring的核心机制具有重要意义。在这篇文章中,我们将详细探讨Spring框架中Bean工厂的设计原理、资源加载的实现机制、如何解析Bean定义并将其注册到Spring容器中。通过这些内容,读者不仅能够理解Spring框架的设计思想,还能够借鉴这些设计模式来优化自己的代码架构。一、前言在实际
java xml 转json json 转 json对象
在下,杨江河
遇到的问题javaxmljson
xml转json在Java中将XML转换为JSON是一个常见的需求,尤其是在处理Web服务或数据交换时。有多种库可以帮助你完成这项任务,但其中最流行和广泛使用的一个是org.json(虽然它本身不直接支持XML到JSON的转换,但可以通过解析XML然后构建JSON来实现)和com.fasterxml.jackson.dataformat.xml(Jackson库的一个扩展,可以直接从XML解析到J
python web自动化
gaoguide2015
自动化脚本webhtml
1.python爬虫之模拟登陆csdn(登录、cookie)http://blog.csdn.net/yanggd1987/article/details/52127436?locationNum=32、xml解析:Python网页解析:BeautifulSoup与lxml.html方式对比(xpath)lxml库速度快,功能强大,推荐。http://blog.sina.com.cn/s/blog
java解析xml大文件工具类_xml解析工具类
weixin_39963830
java解析xml大文件工具类
创建一个xml解析工具类,了解其解析原理。全程使用封装思想。需求:创建一个xml解析工具类,通过用户指定的id值或者class文件路径判断其是否存在,如果存在就返回相对应的对象,如果不存在就返回null;需要用到的知识:【变量定义,数据类型转换,控制语句,循环,自定义方法,类的定义,多态,集合框架,IO流,异常体系,反射,xml解析等知识】工具类封装代码:packagecn.yun.xmldom;
java生成xml 换行符_如何在XML文件中添加换行符(换行符)?
有一失物
java生成xml换行符
甲换行符(又名行中断或结束时的线,EOL)是标记文本行的末尾特殊字符或字符序列。所使用的确切代码因操作系统而异:LF:UnixCR:MacOSuptoversion9CR+LF:Windows,DOS您可以将其用于换行(LF)或用于回车(CR),并且在将解析的文本传递给应用程序时,XML解析器会将其替换为相应的字符。如示例所示,可以手动添加它们,但是在需要以编程方式在字符串中添加换行符时,这些操作
第二十六章 定制SAX解析器的使用方式
Cache技术分享
第二十六章定制SAX解析器的使用方式每当InterSystemsIRIS读取XML文档时,它都会使用InterSystemsIRISSAX(SimpleAPIForXML)解析器。本章介绍用于控制系统间IRISSAX解析器的选项。关于IRISSAX解析器每当InterSystemsIRIS读取XML文档时,都会使用InterSystemsIRISSAX解析器。它是一个事件驱动的XML解析器,读取X
bpmn-js中实现xml数据转为json数据
胖蔡
Bpmn-js流程建模器实战javascriptxmljsonbpmn-js
开发bpmn-js建模器,希望将bpmn数据格式转为json数据格式更加清晰的展示数据层次,以结果为导向分析需求,实现功能的思路有两种方式:通过bpmn-js转化为JS数据对象,然后通过JS中提供的JSON模块转换为json数据将xml解析成dom对象,通过dom对象转化为json格式数据三方库这里主要介绍上面两种方式,三方库转换如xml-js或x2js详细使用查看官方使用教程。对象转换bpmn-
XML解析之Sax解析
王魔王
不熟悉xml的同学可以先阅读下面两篇帖子xml基础https://www.jianshu.com/p/f61953320a43xml语法https://www.jianshu.com/p/361a2cb6d3e5XML解析中有两种解析思想:pull解析sax解析注意是解析思想本篇帖子讲解sax解析与pull解析是把整个xml文档加载到内存中不同,sax解析是逐行解析xml文档的,其解析的过程并不需
android高级ui01-自定义view-
亢正
学习笔记,整理中摘要面1、layoutparams:xml的属性转换为java用的格式2、面必问:measurespec------------------------------------主要讲自定义viewgroup,viewpager1、所有的xml解析都在layoutinflater里面2、自定义view至少3个构造函数,javanewview调用;xml反射调用;不同主题调用;自定义属
IOS-OC-json解析和XML解析代码案列
草根小强
json解析#import#import"Model.h"#import"JSON.h"intmain(intargc,constchar*argv[]){@autoreleasepool{NSString*path=@"/Users/qianfeng/Desktop/OC课堂老师代码/oc上课代码/1231/easy.json";//系统自带方法的解析NSData*data=[NSDatadat
如何使用Python和正则表达式处理XML表单数据
处理XML数据时,Python提供了多种工具,其中包括ElementTree和minidom等。然而,使用正则表达式来处理XML数据并不是一个推荐的做法。XML是一种嵌套结构,而正则表达式对于处理这种嵌套结构的数据并不擅长。更好的方式是使用Python的XML解析库,如ElementTree。以下是一个简单的使用ElementTree处理XML数据的例子:importxml.etree.Eleme
Javaweb基础-tomcat,servlet
tmy99
javaservlet开发语言
一.配置文件基础:properties配置文件:由键值对组成键和值之间的符号是等号每一行都必须顶格写,前面不能有空格之类的其他符号xml配置文件:(xml语法=HTML语法+HTML约束)xml约束-DTD/SchemaDOM4J进行XML解析:(jar包dom4j.jar)1.创建SAXReader对象SAXReadersaxReader=newSAXReader();2.解析XML获取Docu
网页解析神器-Selector选择器全面解析
越大大雨天
本文主要参照scrapy最新官方文档编写。官方文档直达链接:https://docs.scrapy.org/en/latest/topics/selectors.html大部分人可能喜欢使用以下三个解析器对网页进行解析:BeautifulSoup:使用方便,支css选择器,但它有个不可忽视的缺点:慢。lxml解析库:采用xpath解析,速度快。pyquery:它提供了和jQuery类似的语法来解析
3 IOC容器
ca8519be679b
知识点将要讲解如下1IOC底层原理2IOC接口卡BeanFactory3IOC操作Bean管理(基于xml)4IOC操作Bean管理(基于注解)IOC原理和概念1什么是IOC?控制反转,用于降低你代码的耦合度。说的通俗点,我们原始创建对象是new对象,而IOC是解耦处理,将对象创建和调用过程交给spring管理,我们入门的案例就是IOC实现2IOC底层原理底层主要用到3个,xml解析、工厂模式、反
数据结构大作业-DBLP科学文献管理系统(一) XML解析,文件哈希,C++线程
Sugarzo
数据结构xmlc++linq
在程序中,需要解析的DBLB文件大小为3G-4G的。因此每次启动程序前都读取一遍DBLP并全部写入内存的方法是不现实的,这需要我们提前在磁盘中建立对应的数据库文件,在第一次打开程序时进行建立数据库的操作,将需要的数据写入磁盘。之后对DBLP的数据查询只需要打开已经建立好的数据库进行IO操作即可。由于数据在磁盘和内存中的读取速度差距极大,在磁盘中删改添加数据效率是很低的,因此如何建立对应数据的索引,
c#加载xml属性_从XML加载属性
cusi77914
javapythonxml编程语言linux
1.5之前的J2SE版本要求您直接使用XML解析器来加载配置文件和存储设置。尽管这从来都不是一件容易的事,并且解析器是平台的标准组成部分,但是额外的工作还是有些烦人。现在,新更新的java.util.Properties类为加载和存储程序设置提供了一种更简便的方法:loadFromXML(InputStreamis)和storeToXML(OutputStreamos,Stringcomment)
顶级 Javaer 都在使用的类库,真香!
近咫/\ぃ天涯
java后端guavajunit
目录前言1.日志库2.JSON解析库3.单元测试库4.通用库5.HTTP库6.XML解析库7.Excel阅读库8.字节码库9.数据库连接池库10.消息库11.PDF库12.日期和时间库13.集合库14.电子邮件API15.HTML解析库16.密码库17.嵌入式SQL数据库库18.JDBC故障排除库19.序列化库20.网络库前言优秀且经验丰富的Java开发人员的特点之一是对API的广泛了解,包括JD
【笔记】Python3|爬虫处理网页数据异步加载问题(结合Selenium完成)
shandianchengzi
笔记代码python爬虫seleniumlxmlrequests
文章目录问题描述1.结合Selenium、Edge解析该网站搜索页面的数据2.结合lxml解析网页数据3.附加:不是异步加载的网页,结合requests直接请求数据问题描述一些网站会有很多的重定向,才能跳转到真实的资源页。然后爬虫就会报错:requests.exceptions.TooManyRedirects:Exceeded30redirects.这种情况,可以直接关掉重定向,判断响应状态是3
XXE攻击原理
这是什么娃哈哈
1简述XXE(XMLExternalEntity)是指xml外部实体攻击漏洞。XML外部实体攻击是针对解析XML输入的应用程序的一种攻击。当包含对外部实体的引用的XML输入被弱配置XML解析器处理时,就会发生这种攻击。这种攻击通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。2XML结构介绍要了解XXE漏洞,那么一定要先学习一下有关XML的基础知识。XML被设计
go基于gin框架后端服务的插件化开发(附带xml解析实操)
docker真的爽爆了
golangginxml中间件微服务
Go基于GIN框架的插件化开发简言上期实现了用户的注册登录效果,这期则是实现插件化开发,可以让你的作品更“灵活”。还有xml的相关配置和上期用户注册登录相比,就多了个prepare.go,主要负责项目启动后的初始化,读取配置文件啊什么的还有就是server.go增加了一个新的路由组(Extensiongroup)varExtensiongroup=engine.Group("/extensions
C++设计模式-简单工厂模式,工厂方法模式,抽象工厂模式
vczxh
c++设计模式简单工厂模式工厂方法模式
目录简单工厂模式,工厂方法模式,抽象工厂模式附:简单工厂模式,工厂方法模式,抽象工厂模式简单工厂模式:根据字符串参数返回对象。工厂方法模式:创建一维对象,即一个工厂创建一个产品。抽象工厂模式:创建二维对象,即一个工厂创建多个产品。形成一个表格,例如型号a,b,c和系列1,2,3对应产品可以有a1,a2,a3,b1,b2,b3,c1...等。附:builder模式:根据xml解析为内存对象。sing
springboot下XML解析
狼吻小红帽
需求:互联互通定量评审,通过23个入参XML访问webService,得到相应的出参XML。针对入参需要根据前端传入的param替换入参XML模板中特定标识;针对出参需要根据出参XML模板中特定标识,找到通过入参XML访问webService后得到的出参XML在该特定标识位置的值,取出来组成一个Object返回给前端。记录下开发该工具所遇问题,以及解决方案。question1:获取XML文件内容a
(转)Java 8 中的 Streams API 详解
Christopher若有光
本文转载自Java8中的StreamsAPI详解,主要讲解了Streams的背景,以及Java8中的使用详解,讲解的非常细致,建议阅读。为什么需要StreamStream作为Java8的一大亮点,它与java.io包里的InputStream和OutputStream是完全不同的概念。它也不同于StAX对XML解析的Stream,也不是AmazonKinesis对大数据实时处理的Stream。Ja
Python解析XML,简化复杂数据操作的最佳工具
人帝
xml前端python
XML(可扩展标记语言)是一种常见的文本文件格式,用于存储和交换数据。Python提供了多种库和模块,用于解析和操作XML文件。本文将深入探讨如何使用Python操作XML文件,包括XML解析、创建、修改和验证等方面的内容,通过丰富的示例代码来帮助大家理解这些概念。什么是XML?XML是一种标记语言,用于标记数据的结构和元信息。它由开始标签、结束标签、元素、属性等组成,可以表示各种数据类型和复杂的
Python常用库
人帝
python
一、爬虫Requests:是一个PythonHTTP库,可以用于发送HTTP请求,支持HTTP/1.1和HTTP/2,适合于爬取简单的网页。BeautifulSoup:是一个HTML/XML解析库,可以用于解析网页内容,提取出需要的信息。Scrapy:是一个Python爬虫框架,可以用于快速开发高效的爬虫程序,支持分布式爬虫、自动限速、自动重试等功能。Selenium:是一个自动化测试工具,可以模
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独立出来,数据持