- SpringMVC的执行流程
1、什么是MVCMVC是一种设计模式。MVC的原理图如下所示M-Model模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View视图(做界面的展示jsp,html……)C-Controller控制器(接收请求—>调用模型—>根据结果派发页面2、SpringMVC是什么SpringMVC是一个MVC的开源框架,SpringMVC=Struts2+Spring,
- LVS+Keepalived实现高可用和负载均衡
2401_84412895
程序员lvs负载均衡运维
2、开启网卡子接口配置VIP[root@a~]#cd/etc/sysconfig/network-scripts/[root@anetwork-scripts]#cp-aifcfg-ens32ifcfg-ens32:0[root@anetwork-scripts]#catifcfg-ens32:0BOOTPROTO=staticDEVICE=ens32:0ONBOOT=yesIPADDR=10.1
- 面试必考题:Android Binder 机制详解
大模型大数据攻城狮
androidbinder面试reactnativekotlindalvikretrofit
目录第一章:Binder的基本概念什么是Binder?多角度解读Binder第二章:Binder的工作机制Binder的整体流程服务注册:从零到有的第一步服务查询:找到目标的“地图”服务调用:请求与响应的旅程Binder驱动的幕后功劳为什么Binder这么快?第三章:Binder在系统架构中的角色Activity:界面背后的通信枢纽Binder的角色实例分析Service:后台任务的跨进程支柱Bi
- Selenium基础教程
lemontree1945
seleniumpython测试工具
1.Selenium环境安装1.1浏览器安装Chrome和ChromeDriver下载地址:https://googlechromelabs.github.io/chrome-for-testing/注意:驱动版本号要和浏览器版本号一致;安装后关闭浏览器自动更新:services.msc:打开系统服务找到和google相关的服务,全部修改为禁用1.2安装第三方库seleniumpipinstall
- Android Slices:让应用功能在系统级交互中触手可及
安卓开发者
AndroidJetpackandroid交互gitee
引言在当今移动应用生态中,用户每天要面对数十个甚至上百个应用的选择,如何让自己的应用在关键时刻触达用户,成为开发者面临的重要挑战。Google在Android9Pie中引入的Slices技术,正是为了解决这一痛点而生。本文将全面介绍AndroidSlices的概念、实现方法、应用场景以及最佳实践,帮助开发者掌握这一提升用户参与度的强大工具。什么是AndroidSlices?AndroidSlice
- Java8 Stream流的sorted()的排序【正序、倒序、多字段排序】
Tony666688888
javawindows开发语言
针对集合排序,java8可以用Stream流的sorted()进行排序。示例Bean以下我们会使用这个Bean来做示例。publicclassOrder{privateStringweight;privateDoubleprice;privateStringdateStr;//忽略getter、setter、构造方法、toString}字段排序首先是比较器Comparator,形式如下:Compa
- 大数据技术笔记—spring入门
卿卿老祖
篇一spring介绍spring.io官网快速开始Aop面向切面编程,可以任何位置,并且可以细致到方法上连接框架与框架Spring就是IOCAOP思想有效的组织中间层对象一般都是切入service层spring组成前后端分离已学方式,前后台未分离:Spring的远程通信:明日更新创建第一个spring项目来源:科多大数据
- word转pdf、pdf转word在线工具分享
bpmh
常用工具wordpdf
️一、在线转换网站(方便快捷,无需安装)MicrosoftOfficeOnline(官方推荐,最安全可靠):网址:直接使用你的Microsoft账户登录https://www.office.com/方法:将你的.docx或.doc文件上传到OneDrive。在OfficeOnline中打开该Word文档。点击文件>另存为>下载PDF副本。优点:官方出品,完全免费,无需额外上传到第三方服务器,安全性
- 探索高效文档转换新路径:Aspose.Words v18.7助力Word无缝变PDF
邴卉露Robust
探索高效文档转换新路径:Aspose.Wordsv18.7助力Word无缝变PDF【下载地址】Aspose.Wordsv18.7C示例源码Word转PDF无需安装Office本仓库提供了一个使用Aspose.Wordsv18.7将Word文档转换为PDF文档的C#示例源码。Aspose.Words是一个强大的.NET控件,允许开发者在不安装MicrosoftOffice的情况下读写Word文档,并
- 全局修改GitLab14默认语言为中文
GitLab安装成功后默认语言是英语,只有登录后才能手动指定为中文,且这个配置只对自己生效,经查阅资料后,总结全局修改GitLab14默认语言为中文方法如下:0.进入容器如果你用Docker部署的GitLab,那么需要使用命令sudodockerexec-itgitlab/bin/bash进入容器1.修改rails配置文件打开/opt/gitlab/embedded/service/gitlab-
- 修改gitlab默认的语言
Victor刘
gitlab
文章目录网上的方法1.采用数据库触发器的方法2.登录pg库2.1查看表2.2创建function2.3创建触发器2.4修改历史数据网上的方法网上修改/opt/gitlab/embedded/service/gitlab-rails/config/application.rb的方法,我试了,没生效,没进一步研究1.采用数据库触发器的方法2.登录pg库su-gitlab-psqlpsql-h/var/
- Makefile if语句用法
java叶新东老师
c++makefile
文章目录语法1.BasicExpressions:2.LogicOperators:3.ExistenceChecks4.FileOperations5.Comparisons示例1、判断两个字符串是否相等2、判断文件路径是否目录完语法CMake中的if命令用于有条件地执行一组命令,其格式如下:if()elseif()#optionalblock,canberepeatedelse()#optio
- 2025最新Mybatis-plus教程(四)
五、MyBatis-Plus的service封装(一)通用Service简介MyBatis-Plus除了通用的Mapper还有通用的Service层,这也减少了相对应的代码工作量,把通用的接口提取到公共。其实按照mp的这种思想,可以自己也实现一些通用的Controller。(二)通用Service方法介绍/***插入一条记录(选择字段,策略插入)**@paramentity实体对象*/defaul
- 感恩日记
叶子216
1.感恩@姣叶送我的课程——显化清单和时间轴,让我有不一样的体会。谢谢,谢谢,谢谢!2.感恩瑜伽老师@文霞,同意我去上她的练臀课,让好久没聊瑜伽的我过了把瘾。谢谢,谢谢,谢谢!3.感恩明远大表哥对我的信任,他相信我能做好,莫名的感动。谢谢,谢谢,谢谢!4.感恩老公跟我分享这一个月来的状况和办成的成果,都在变成越来越好的自己的感觉特别好。谢谢,谢谢,谢谢!5.感恩@Alice的信任,约我明天下午3点
- 商务英语level5 unit1 part3 Dialogue Seeking advice.
Alexandear
Himark,youlookstressedoutrecently.How'slife?Hisharon.I'mfindingithardtobalanceworkandlife.IfeellikeI'malwaysworkinglatewithnotimeforanythingbutthejob.Butyoualwaysseemtohavetimeforyourpersonallife.What
- window显示驱动开发—支持 Direct3D 版本 10.1
1.Direct3D10.1的版本标识(1)版本号与头文件定义API版本号:D3D10_1_SDK_VERSION(在d3d10_1.h中定义)运行时检测:通过ID3D10Device::CheckFeatureSupport查询D3D10_FEATURE_LEVEL_10_1支持。D3D10_FEATURE_LEVELfeatureLevel=D3D10_FEATURE_LEVEL_10_1;i
- 大厂都在用的前端缓存策略,你掌握了吗?
AI架构全栈开发实战笔记
前端缓存ai
大厂都在用的前端缓存策略,你掌握了吗?关键词:前端缓存、HTTP缓存、ServiceWorker、CDN缓存、缓存策略、性能优化、浏览器缓存摘要:本文将深入探讨前端开发中常用的缓存策略,从浏览器缓存到ServiceWorker,从HTTP缓存头到CDN缓存,全面解析大厂都在使用的高效缓存技术。通过生动的比喻和实际代码示例,帮助开发者理解并掌握这些提升Web应用性能的关键技术。背景介绍目的和范围本文
- 【华为机试】121. 买卖股票的最佳时机
不爱熬夜的Coder
算法华为机试golang华为算法华为od深度优先数据结构
文章目录121.买卖股票的最佳时机描述示例1示例2示例3提示解题思路方法一:一次遍历(推荐)方法二:暴力解法方法三:动态规划方法四:分治法代码实现复杂度分析测试用例完整题解代码121.买卖股票的最佳时机描述给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大
- 洋吉日记2023.1.22(大年初一,又是人山人海,nice)
洋吉日记
坚持写日记的第229天,坚持运动的第342天。1、今日星期天,天气晴朗,但仅仅晴朗了中午阶段而已,好久没吃白水煮鸡蛋了,早上,一杯牛奶,一个鸡蛋,一个柿饼,(早餐)2、下午婷约我,出去玩,但我比较侧重于骑行,我就拉着车去了,她看见我车上拉着自行车,也骑车出来了,哈哈,结果吧,她又懒,不太想骑太远,我们把车开到大观街上,卸下自行车,往街子古镇方向骑,今日初一,路上的车辆从普照寺口子就一直堵到街子,还
- 2020-02-26
毛素平
焦点中级毛素平坚持分享第196天:今天是最充实的一天,完成明星导师班作业,读了十几页书,又听了刘老师的微课8节,真的很受益,笔记记录5页,听着记着,感觉刘老师真是大爱,几节课都那么有感染力,对孩子的沟通,理解…走进孩子的心,都有极大帮助,即使没听过焦点的,也能听懂,特别是为什么孩子没有学习动力?一是环境,二是夫妻关系,和谐的夫妻关系就是孩子学习的源动力。孩子感觉在这个家是安全的,没有后顾之忧,内外
- 小白排坑-Centos8无法启动网卡解决方案,网卡未加入托管
吃喝不愁的Live~~
linux基础
只针对部分情况,网卡未加入托管导致虚拟机开启ifconfig没有ens33网卡,无法上网手动启动网卡提示Connection'ens33'isnotavailableondeviceens33becausedeviceisstrictlyunmanaged解决方案临时方案:dhclientens33执行后可以上网,可以远程连接,但是每次开机都无法自动启动,最终找到原因是由于NM托管未开启导致的永久
- 网卡未托管的解决办法
m0_73104820
linux
网卡未托管的解决办法[root@localhost~]#nmclidevicestatus//查看网卡的连接状态DEVICETYPESTATECONNECTIONvirbr0bridge未托管--ens160ethernet未托管--loloopback未托管--virbr0-nictun未托管--[root@localhost~]#nmclidevicesetens160managedyes//
- nmcli 网卡显示未托管
刘先生的猫
网络服务器linux
nmcli网卡显示未托管解决办法:修改/etc/NetworkManager/NetworkManager.conf将文件中的managed=false改为true重启就可以了这样就可以通过nmcli命令来断开/连接网卡nmclidevicedisconnecteth0断开网卡nmclideviceconnecteth0连接网卡nmclicup/downwifi可以连接/断开WiFi的连接nmcl
- ROS2编写一个简单的插件
CrimsonEmber
ROS笔记ROS2笔记学习
1.createabaseclasspackageros2pkgcreate--build-typeament_cmake--licenseApache-2.0--dependenciespluginlib--node-namearea_nodepolygon_base编辑ros2_ws/src/polygon_base/include/polygon_base/regular_polygon.h
- Qt 5.15.x + VS的源码编译
黃建榮
QtAboutqtc++
环境依赖MVSC,Python,Ruby,Perl需要安装的一些工具第一次编译configure的相关命令configure.bat-prefixE:\qt\qt5\install\-opensource-confirm-license\-qt-sqlite-qt-pcre-qt-zlib\-qt-libpng-qt-libjpeg-qt-freetype-qt-harfbuzz\-skipqtw
- Tensorflow-gpu运行时报错Non-OK-status: GpuLaunchKernel
GEM的左耳返
pythontensorflow深度学习python
Tensorflow-gpu运行时报错Non-OK-status:GpuLaunchKernel(FillPhiloxRandomKernelLaunch,num_blocks,block_size,0,d.stream(),gen,data,size,dist)status:Internal:invaliddevicefunctionFatalPythonerror:Aborted说明你安装的C
- JSP编程从入门到精通:现代Web开发与AI集成实战指南
AI编程员
001AI传统&编程语言002AI编程工具汇总003AI编程作品汇总人工智能AI编程笔记开发语言深度学习
JSP编程从入门到精通:现代Web开发与AI集成实战指南一、JSP基础与环境搭建1.1JSP核心概念与工作原理JSP(JavaServerPages)是一种动态网页开发技术,通过在HTML中嵌入Java代码实现服务器端逻辑。其本质是Servlet的扩展,当客户端首次请求JSP页面时,服务器会将其编译为Servlet类(如index_jsp.java),再执行该类的_jspService()方法生成
- 移动端布局
小唱同学
viewport详解viewport:视口,指的是浏览器中放网页内容的区域移动端的viewport不会自动随着设备的变化而变化,被设定为一个固定值980或者1024,为了能够在移动端正常查看pc端页面.做移动端布局时,需要把viewport设置为随着设备的变化而变化参数说明:width:设置视口的宽度device-width设备宽度initial-scale:页面的初始缩放比例1.0原始大小max
- 科普文:软件架构方法论【Little定律(Little‘s Law):L = λ × W 估算服务器性能和硬件资源】
01Byte空间
业务场景软件架构linux服务器网络运维Little定律L=λ×WQPS
概叙科普文:软件架构方法论【Little定律(Little‘sLaw)详解】-CSDN博客科普文:软件架构之Linux服务器性能【web应用之响应时间(ResponseTime,RT)详解】-CSDN博客科普文:软件架构之Linux服务器性能【响应时间(ResponseTime,RT)之网络开销详解】-CSDN博客科普文:软件架构之Linux服务器性能【搞清楚QPS、延迟、带宽、服务器tcp连接数
- 5个必知的AIGC工具,轻松打造爆款虚拟偶像
AI原生应用开发
AI原生应用开发实战AIGCai
5个必知的AIGC工具,轻松打造爆款虚拟偶像关键词:AIGC工具、虚拟偶像、AI生成内容、数字人建模、智能交互、语音合成、动画生成摘要:本文深度解析5款前沿AIGC工具在虚拟偶像打造中的核心应用,涵盖从形象设计、语音生成到动态交互的全流程技术实现。通过MidJourney、D-ID、MetaHuman、RunwayML、VoiceMaker等工具的原理剖析、操作指南及实战案例,揭示如何利用AI技术
- 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独立出来,数据持