- webpack和vite区别
雅望天堂i
javascript前端
1.工作原理WebpackWebpack是一个静态模块打包工具。它会从入口文件开始,递归地分析项目中的所有依赖,构建出一个依赖图。然后,它会根据配置中的规则,使用不同的loader对各种类型的文件(如JS、CSS、图片等)进行处理和转换,最后将所有模块打包成一个或多个静态资源文件。例如,当项目中有一个JavaScript文件引入了CSS文件和图片,Webpack会先使用CSSloader处理CSS
- 第五章:工程化实践 - 第三节 - Tailwind CSS 大型项目最佳实践
qianmoQ
TailwindCSS:现代化开发实战指南css前端
在大型项目中使用TailwindCSS需要考虑更多的架构设计、性能优化和团队协作等方面的问题。本节将分享在大型项目中使用TailwindCSS的最佳实践和解决方案。项目架构设计目录结构src/├──components/│├──common/││├──Button/││├──Input/││└──Select/│├──features/││├──Auth/││├──Dashboard/││└──S
- DIG 命令并启用 EDNS(扩展的DNS协议,EDNS0)
查里王
运维
安装dig命令:dig是由bind-utils(在CentOS/RHEL中)或dnsutils(在Ubuntu/Debian中)软件包提供的工具。支持EDNS的dig版本:现代的dig工具默认支持EDNS,无需额外配置。确保使用最新版本的dig。安装dig命令对于CentOS/RHEL:sudoyuminstall-ybind-utils对于Ubuntu/Debian:sudoaptupdates
- Linux终端+桌面组合使用Primary和Clipboard提高工作效率
程序员
什么是Primary日常工作中,Linux作为服务器环境的情况较多,但其实作为桌面系统也有一些特有的高效姿势,比如PrimarySelection(主选择,或者习惯上叫中键剪贴板)。在绝大多数支持选中的情形下,选中的内容就会自动保存在这里,只要再按鼠标中键就能粘贴出来,过程中并没有涉及到传统的Ctrl+C,Ctrl+V操作的剪贴板。这可带来很多便利,最明显的就是在连续使用鼠标操作,进行多次复制粘贴
- 关于uniapp使用renderJS中调用父类方法和参数的使用
Little_Code
前端学习之路uni-app前端javascript
首先,页面这样下:加载中:{{loadingProgress}}%exportdefault{name:'threeModel',props:{modelUrl:{type:[String],default:''},modelname:{type:[String],default:''},height:{type:[Number,String],default:'300px'},parentMet
- SSH连接虚拟机被拒绝
装B且挨揍の
ssh运维服务器linux经验分享
可能1:虚拟机未下载sshsudoaptinstallopenssh-server可能2:防火墙sudoufwdisable或者sudoufwallow22放行22端口
- 为什么Swift不允许字符串使用===判断?ObjC字符串为什么有@前缀?NSLog和printf的区别?NSString *s = @“hello“变量s是不可变的吗?什么是Cocoa?
程序员小迷
Objective-cSwift小话iosioscocoaobjective-cswiftcmacoswpf
为什么Swift不允许字符串使用===判断?===判断实例是否引用同一个引用,!==判断实例不指向同一个引用,它们只能用于类类型/引用类型,而字符串在Swift是值类型。ObjC字符串为什么有@前缀?这是为了和普通C语言字符串区分开,@前缀代表字符串是NSString*类型,这种类型并不能和char*直接等价。NSLog和printf的区别NSLog是Objective-C引入的日志记录函数,pr
- python打造流媒体服务器,Python:HTTP发布带有流媒体的大文件
某miao
python打造流媒体服务器
I'muploadingpotentiallylargefilestoawebserver.CurrentlyI'mdoingthis:importurllib2f=open('somelargefile.zip','rb')request=urllib2.Request(url,f.read())request.add_header("Content-Type","application/zip
- Python版23种设计模式终极指南:原理+场景+实战代码全覆盖
燃灯工作室
Pythonpython设计模式开发语言
一、创建型模式(5种)1.单例模式(Singleton)核心思想:确保一个类仅有一个实例。使用场景:全局配置管理、数据库连接池。Python案例:classAppConfig:_instance=Nonedef__new__(cls):ifnotcls._instance:cls._instance=super().__new__(cls)cls._instance.load_config()re
- 安装 RabbitMQ 在 Ubuntu
EvktJava
rabbitmqubunturuby
RabbitMQ是一个开源的消息队列中间件,它提供了可靠的消息传递机制,用于在分布式系统中进行异步通信。本文将向您展示如何在Ubuntu系统上安装和配置RabbitMQ。步骤1:更新系统在开始安装RabbitMQ之前,首先确保您的系统是最新的。打开终端并执行以下命令来更新系统:sudoaptupdatesudoaptupgrade步骤2:安装ErlangRabbitMQ是使用Erlang语言开发的
- 达梦官网驱动下载:DmJdbcDriver6、DmJdbcDriver7、DmJdbcDriver8、DmJdbcDriver11
钊兵
达梦数据库DmJdbcDriver达梦驱动
官网下载达梦官网驱动下载:DmJdbcDriver6、DmJdbcDriver7、DmJdbcDriver8、DmJdbcDriver11官网下载地址:https://eco.dameng.com/download/滑倒网页最下方有驱动下载下载的压缩包包含以下文件:网盘下载如果觉得官网下载慢的小伙伴,可以在我整理的网盘中下载:https://pan.quark.cn/s/9bfafcf43ddc
- 强烈推荐的3款低代码爬虫,程序员必备
朱卫军 AI
低代码爬虫网络爬虫
网络爬虫是一种常见的数据采集技术,你可以从网页、APP上抓取任何想要的公开数据,当然需要在合法前提下。爬虫使用场景也很多,比如:搜索引擎机器人爬行网站,分析其内容,然后对其进行排名,比如百度、谷歌价格比较网站,部署机器人自动获取联盟卖家网站上的价格和产品描述,比如什么值得买市场研究公司,使用爬虫从论坛和社交媒体(例如,进行情感分析)提取数据。与屏幕抓取不同,屏幕抓取只复制屏幕上显示的像素,网络爬虫
- 资源管理详解-ChatGPT4o作答
部分分式
笔记
资源整合是指将不同类型的资源(如人力、财力、物力、信息、技术等)有效地组织、配置、协调和利用,以实现最大化的效益和目标。这一过程在各个领域中都非常重要,尤其在企业管理、项目管理、战略规划和技术创新等领域。资源整合不仅仅是资源的收集和调配,更重要的是要在合适的时机将它们应用于最合适的地方,以产生协同效应。1.资源整合的定义资源整合通常指通过一定的管理机制和技术手段,将不同领域、不同部门、不同职能的资
- 【报错解决】vue打开界面报错Uncaught SecurityError: Failed to construct ‘WebSocket‘
momo_via
报错解决chrome前端vue
问题描述:vue运行时正常,但是打开页面后报错UncaughtSecurityError:Failedtoconstruct'WebSocket':AninsecureWebSocketconnectionmaynotbeinitiatedfromapageloadedoverHTTPS.解决方案:在项目列表中的public下的index.html里添加以下内容即可
- 低代码开发能与视频对话的AI聊天应用(含前后端代码)
佛州小李哥
AWS技术人工智能亚马逊云科技aws科技ai云计算语言模型
在本篇文章中,我会构建一个基于生成式AI的应用,让大家能利用生成式AI的能力和视频交互,并且几乎不需要编写任何代码。在本篇文章中,我将展示如何构建一个简单的AI应用,它可以总结冗长的YouTube视频并使其可交互,同样的方式大家可以应用到B站视频等。海外的开发者经常观看YouTube视频,目的包括学习、娱乐和工作。因为是从事IT行业,开发者有时候没有时间看完整个视频,但又非常想了解视频中提到的关键
- cache-loader 项目常见问题解决方案
郝允星Nightingale
cache-loader项目常见问题解决方案cache-loader[DEPRECATED]Cachestheresultoffollowingloadersondisk项目地址:https://gitcode.com/gh_mirrors/ca/cache-loader1.项目基础介绍和主要编程语言项目名称:cache-loader项目简介:cache-loader是一个用于Webpack的加载
- uni-app 开发app 时 ios上传图片失败的问题
貂蝉空大
uni-appuni-app
安卓没有问题,就ios上传图片不行1、必须要有header头uni.uploadFile({url:'https://www.example.com/upload',//仅为示例,非真实的接口地址filePath:tempFilePath,//图片本地路径name:'file',//写死//请求头一定要加,否则iOS图片上传会失败安卓可有可无header:{'content-type':'mult
- 【C++动态库】动态库隐式与显式加载 | 为什么要动态加载动态库 | LoadLibrary加载失败 | 参考开源操作系统ReactOS源码 | 用LoadLibraryEx替代LoadLibrary
dvlinker
C/C++实战专栏C/C++软件开发从入门到实战1024程序员节dll动态库隐式加载与动态加载LoadLibraryLoadLibraryEx开源操作系统ReactOS
目录1、概述2、dll动态库的隐式加载与动态加载2.1、dll库的隐式加载2.2、dll库的显式加载3、为什么要使用动态加载dll动态库的方式?什么时候需要使用动态加载?3.1、调用系统dll库中未公开的接口3.2、调用控件库中的注册接口向系统中注册该控件3.3、底层的业务模块做成动态启动方式,上层产品可以根据自己的业务需要选择想启动的业务模块4、LoadLibrary动态加载dll动态库失败的场
- Vue 和 React 的异同点
秀秀_heo
Vue及其周边生态React及其周边生态vue.jsreact.js前端
一、核心设计理念的差异组件形态的底层实现Vue:组件编译后是包含render/setup方法的对象(通过vue-loader或@vitejs/plugin-vue将SFC转换为对象)。React:组件本质是函数(函数组件)或类(类组件),JSX会被Babel编译为React.createElement调用。模板与JSX的编译差异Vue:模板(Template)在编译阶段会被优化为可追踪依赖的渲染函
- C语言——宏定义,宏函数
小新努力学编程
c语言前端
宏定义宏常量:#defineSIZE20#include#definePI3.14intmain(){floatr=0;printf("inputr:");scanf("%f",&r);floatarea=PI*r*r;printf("area=%.2f\n",area);return0;}宏使用时,采取的是原样替换。宏函数#define宏函数名(参数1,参数2)表达式#includevoid
- 如何清理cache-loader生成的缓存目录?
祈澈菇凉
缓存
清理cache-loader生成的缓存目录可以帮助避免潜在的缓存问题和不必要的磁盘占用。以下是几种清理缓存的有效方法:一、手动清理1.定位缓存目录在Webpack配置中,你可以指定cache-loader的缓存目录。默认情况下,缓存目录可能位于项目的.cache-loader文件夹中。可以在配置中检查或指定:{loader:'cache-loader',options:{cacheDirector
- Redis学习笔记--Redis安装
Etaon
Redisredis数据库database
下载安装地址:https://redis.io/download在该页面也给出了安装方法:Download,extractandcompileRediswith:$wgethttps://download.redis.io/releases/redis-6.2.6.tar.gz$tarxzfredis-6.2.6.tar.gz$cdredis-6.2.6$makeThebinariesthatar
- el-date-picker 隐藏输入框 通过按钮实现弹出
一个假的前端男
vueel-date-picker
通过点击下载制定时间数据弹出el-date-picker组件2.给它设置一个ref标识,在需要选择自定义时间时,直接通过this.refs.datePickerRef找到该组件,然后refs.datePickerRef找到该组件,然后refs.datePickerRef找到该组件,然后el表示组件元素,通过调用click点击事件控制选择器显示。html代码:下载指定时间数据jsuploadTime
- vulnhub(8):pWnOS(还没信息收集就已经成功打点)
anddddoooo
vulnhuboscp-like靶场linux运维网络安全安全服务器
端口nmap主机发现nmap-sn192.168.89.0/24Nmapscanreportfor192.168.89.116Hostisup(0.00020slatency).116是新出现的机器,他就是靶机nmap端口扫描nmap-Pn192.168.89.116-p---min-rate10000-oAnmap/scan扫描开放端口保存到nmap/scan下PORT STATESER
- python基础02 函数
xwj_865574332
python
一、Python函数内置函数printinputlentypestrintfloatlistrangepopappendinsertkeyssplitreplacestripremoveclear函数的特点:可以重复使用函数的语法:def关键字函数名命名的规范:小写字母不能以数字开头,不同的字母之间用下划线隔开语法:def函数名:函数体:#你希望这个函数体为你实现什么功能,函数的调用:函数名()练
- tensorboard使用过程中报错:[Errno 22] Invalid argument
Jackilina_Stone
【EH】报错处理python深度学习pytorch
1报错如下所示:D:\code\deep_learning\logs>tensorboard--logdir=traind:\anaconda3\lib\site-packages\h5py\__init__.py:34:FutureWarning:Conversionofthesecondargumentofissubdtypefrom`float`to`np.floating`isdeprec
- php命令执行绕过,CTF之命令执行绕过总结
sunny学姐
php命令执行绕过
##Linux篇###命令拼接```a=whob=ami$a$b//输出whoami```常用字符使用```&表示将任务置于后台执行;多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块&&只有在&&左边的命令返回真(命令返回值$?=
- iperf3 测试云服务性能
查里王
运维
要使用iperf3测试百度云主机的实际带宽,您可以按照以下步骤操作:安装iperf3:首先,您需要在云主机上安装iperf3。在CentOS系统中,可以使用以下命令安装:yum-yinstalliperf3Ubuntu安装命令:sudoapt-getinstalliperf3对于Windows系统,您需要下载并安装iperf31。运行iperf3服务端:在云主机上运行以下命令以启动服务端:复制ip
- 运维人员的Python详细学习路线
沉默的八哥
运维运维python学习
以下是一条适合运维人员的Python详细学习路线:一、基础入门阶段(第1-2个月)环境搭建与基础语法(第1个月)安装与配置在运维常用的操作系统(如Linux或Windows)上安装Python。对于Linux系统,通常系统自带Python,但可能需要安装更新版本;在Windows系统上,可以从Python官方网站(DownloadPython|Python.org)下载安装包进行安装。配置环境变量
- TPAMI 2024 | DeepMesh:可微等值面提取
小白学视觉
论文解读IEEETPAMITPAMIIEEE顶刊论文论文解读机器学习
DeepMesh:DifferentiableIso-SurfaceExtraction题目:DeepMesh:可微等值面提取作者:BenoîtGuillard;EdoardoRemelli;ArtemLukoianov;PierreYvernay;StephanR.Richter;TimurBagautdinov;PierreBaque;PascalFua摘要最近,随着连续深度隐式场的出现,几何
- 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独立出来,数据持