- 【数据库学习】Flyway
兔兔西
数据库学习数据库学习之postgres数据库
1,功能数据库版本管理;实现管理并跟踪数据库变更,支持数据库版本自动升级。2,使用1)java使用添加依赖org.flywaydbflyway-core6.5.7配置:javaspring:flyway:#是否启用enabled:true#可以支持多个location,用','隔开locations:classpath:db/migration#是否创建元数据表validate-on-migrat
- Spring是怎样处理循环依赖的?
后端开发萌新
死磕Spring源码系列springjava
文章目录环境前言什么是循环依赖?所有注入场景的循环依赖Spring都能解决吗?场景TestA.javaTestB.javaspring-context.xmlMain.java测试结果Spring是怎么解决循环依赖的?前置说明源码解析addSingletonFactorygetSingletongetEarlyBeanReference总结环境SpringFrameworkVersion:5.3.
- 【JavaSpring】为什么使用sring以及其中的bean线程安全吗?spring支持几种bean作用域和自动装配bean哪些方式?spring事务隔离?mvc运行流程
王果冻ddd
安全springmvcjava开发语言
目录1、为什么要使用spring?2、spring中的bean是线程安全的吗?3、spring支持几种bean的作用域?4、spring自动装配bean有哪些方式?5、spring事务实现方式有哪些?6、说一下spring的事务隔离?7、说一下springmvc运行流程?1、为什么要使用spring?•spring提供ioc技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松
- JavaSpring-AOP详解(Maven导入 深入浅出)
GarsonW
软件开发springjava
在CSDN上看了很多关于配置AOP的文章,不是很复杂就是省略了很多步骤。本文用最简单并且最清晰的方法从导入依赖到AOP底层原理。逐步讲解SpringAOP的相关操作帮你快速了解AOP。目录通过Maven仓库导入相关依赖AOP(开始)AOP术语AOP五种通知AOP相同切入点的抽取有多个增强类对同一个同一个方法进行增强通过Maven仓库导入相关依赖文件结构:pom.xml:4.0.0comGarson
- 85道Java Spring综合面试题详解含答案(值得珍藏)
孤蓬&听雨
面试资料javaspring开发语言面试
点击下载《85道JavaSpring综合面试题详解含答案(值得珍藏)》1.Spring概述1.1什么是spring?Spring是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。1.2使用Spring框架的好处是什么?轻量:S
- 深入理解Java Spring中的全局异常处理:以Reggie项目为例
hoypte
javaspring状态模式
在JavaSpring开发中,异常处理是非常关键的一部分。优雅地处理异常不仅可以提升用户体验,还能帮助开发者快速定位问题。本文将通过Reggie项目中的一个实例,深入探讨如何在Spring中使用@ControllerAdvice和@ExceptionHandler实现全局异常处理。项目背景Reggie是一个基于Spring框架的Web应用,它可能包含多个控制器(Controller)来处理不同的业
- Java Spring注解——Controller层、Service层、mapper层
千Deng
java开发语言
目录前言一、Controller层常用注解(一)写在类名上方(二)写在类内部二、Service层常用注解三、mapper层常用注解四、lombok注解(一)用于实体类(二)用于类对象后续敬请期待前言JavaSpring注解——Controller层、Service层、mapper层等一、Controller层常用注解(一)写在类名上方@RestController@RestController可将
- SpringBoot动态切换数据源
陆卿之
springboot后端java
文章目录SpringBoot动态切换数据源数据库添加依赖配置数据源信息TestUser.javaTestUserMapper.java方式一(ThreadLocal)DynamicDataSourceContextHolder.javaDynamicRoutingDataSource.javaDynamicDataSourceConfig.javaTestController.javaSpring
- Java Spring框架基础教程
C红毛丹
javaspring开发语言
1.引言JavaSpring框架是一个轻量级的、开源的应用程序框架,用于开发Java应用程序。它提供了一种简化和加速Java应用程序开发的方式,同时也提供了一些强大的功能和特性。本教程将介绍JavaSpring框架的基础知识和使用方法,帮助读者快速上手并理解该框架的核心概念。2.Spring框架概述Spring框架由RodJohnson于2002年创建,最初是为了解决企业级应用程序开发中的一些常见
- @Scheduled注解 定时任务讲解
蓝胖子不是胖子
springbootspring
用于在JavaSpring框架中定时执行特定任务的注解@Scheduled,它能够指定方法在特定时间间隔或特定时间点执行。默认参数是cron,cron参数被用来定义一个Cron表达式,它代表了任务执行的时间规则参数如下Cron这是是一种时间表达式,用于表示定时任务的执行规则。在Spring中,@Scheduled注解的cron参数就是用来设置Cron表达式的。Cron表达式的基本格式为:secdo
- Spring Boot Serverless 实战 | Serverless 应用的监控与调试
阿里云云栖号
云栖号技术分享springbootserverlessjava
简介:SpringBoot是基于JavaSpring框架的套件,它预装了Spring的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序。在云原生的环境中,有大量的平台可以运行SpringBoot应用,例如虚拟机、容器等。但其中最有吸引力的,是以Serverless的方式运行SpringBoot应用。作者:西流SpringBoot是基于JavaSpring框架的套件,它预装了Spri
- security登录实战
Stephen_CY666
java
以下是一个基本的security登录实战代码示例,采用JavaSpring框架:配置security@Configuration@EnableWebSecuritypublicclassSecurityConfigextendsWebSecurityConfigurerAdapter{@AutowiredprivateUserDetailServiceImpluserDetailsService;
- JavaSpring使用Quartz任务调度定时器
美渊科技
java
Quartz任务调度是什么Quartz是OpenSymphony开源组织在Jobscheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz是一个完全由Java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能,但就其简易形式看,你会发现它易用得简直让人受不了!摘自百度百科其实,他还是没有解释明白,我简单说一
- Spring实战(第4版)pdf
weixin_30619101
java开发工具后端
下载地址:网盘下载Spring实战(第4版)是非常畅销的Spring图书也是国内读者极其熟悉的Spring经典图书之一,Javaweb开发从入门到精通,了解JavaSpring技术内幕。全球有超过100000的开发者使用本书来学习Spring中文版累计销售超10万册,畅销经典Spring技术图书,针对Spring4全新升级作者CraigWalls,SpringSource的软件开发人员,也是一位畅
- 【主流技术】Redis 在 Spring 框架中的实践
手术刀呀
前言在JavaSpring项目中,数据与远程数据库的频繁交互对服务器的内存消耗比较大,而Redis的特性可以有效解决这样的问题。Redis的几个特性:Redis以内存作为数据存储介质,读写数据的效率极高;Redis支持key-value等多种数据结构,提供字符串,哈希,列表,队列,集合结构直接存取于内存,可持久化(RDB和AOF);支持主从模式,可以配置集群。下面,我将和大家一起学习分享Redis
- [学习][笔记]设计模式(基于C/C++实现)<八>工厂模式
二进制怪兽
设计模式设计模式
文章目录工厂模式简单工厂模式定义使用场景基本思路实例总结工厂方法模式定义使用场景基本思路实例总结抽象工厂模式定义使用场景基本思路实例总结工厂总结模板工厂模式定义使用场景基本思路实例总结产品注册模板类+单例工厂模板类定义使用场景基本思路实例总结对于javaSpring工厂模式思考总结工厂模式C++深入浅出工厂模式(初识篇)C++深入浅出工厂模式(进阶篇)这种类型的设计模式属于创建型模式,它提供了一种
- Centos安装RabbitMQ,JavaSpring发送RabbitMQ延迟延时消息,JavaSpring消费RabbitMQ消息
胡子哥502
javaMQcentosrabbitmqjava延迟消息
1,版本说明erlang和rabbitmq版本说明https://www.rabbitmq.com/which-erlang.html确认需要安装的mq版本以及对应的erlang版本。2,下载安装文件RabbitMQ下载地址:https://packagecloud.io/rabbitmq/rabbitmq-serverErlang下载地址:https://packagecloud.io/rabb
- 【Javaspring学习笔记】动态代理
hwj729748198
JavaspringJavaspring学习笔记
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IOC,另一个就是AOP,对于IOC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。动态代理有两种方式:1、jdk动态代理是由java内
- 从零开始认识并操纵Spring Aop事务
Automn
[TOC]声明:从零开始,并不代表你对javaSpring一点都不懂的程度哈,本实例只是过一个概貌,详细内容会分多篇文章拆解业务介绍要想要设计一个和事务操作相关的业务,我们以最经典的转账的例子来描述转账,即两个用户之间钱的关系变动,但要求总和不变版本声明本案例使用的Web版本2.5,Spring版本为4.3开发工具为eclipse操作步骤导包Spring各版本官方包下载下载的包包含Spring包以
- Spring源码:占位符${}解析源码分析
mumubili
springPropertySource属性配置javaspringspringboot
目录1.Spring中用到的占位符解析类2.PropertySourcesPlaceholderConfigurer实现bean工厂后处理器3.PropertyPlaceholderHelper帮助类解析逻辑在javaspring项目中,我们经常使用到${}占位符实现属性值的获取,最常见的就是使用@Value("${propsKey}")的方式完成bean属性值的注入,如下:@Value("${a
- 基于JavaSpring的学生宿舍管理系统
柒月玖.
Javajava
点击以下链接获取源码:https://download.csdn.net/download/qq_64505944/88407844
- Java Spring拦截器优化实践: 专注于API路径拦截
猫头虎
已解决的Bug专区Spring全家桶技术专区javaspring开发语言
博主猫头虎带您GotoNewWorld.✨博客首页——猫头虎的博客《面试题大全专栏》文章图文并茂生动形象简单易学!欢迎大家来踩踩~《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~希望本文能够给您带来一定的帮助文章粗浅,敬请批评指正!文章目录JavaSpring拦截器优化实践:专注于API路径拦截摘要
- 处理multipart形式的数据
losspm
前言由于本人接触最多的是电子商城的开发,目前涉及到的接口数据处理最多的为字符串,少部分为图片,因此处理大型文件的经验比较少。在学习JavaSpring过程中,了解到JavaSpring处理数据过程中有很多值得学习的地方。就拿multipart来说,Spring为multipart提供了很多扩展性的配置,能够针对不同的业务场景进行相关配置multipart对于表单提交,multipart格式的数据会
- golang工程——gRpc 拦截器及原理
咚伢
golang后端
oauth2认证与拦截器类似javaspring中的拦截器。gRpc也有拦截器的说法,拦截器可作用于客户端请求,服务端请求。对请求进行拦截,进行业务上的一些封装校验等,类似一个中间件的作用拦截器类型一元请求拦截器流式请求拦截器链式拦截器(一个个调用对应处理函数)使用场景:拦截器可以从元数据获取一些认证进行进行校验。服务端拦截器拦截器定义interceptor.gopackageserverimpo
- layui+java spring 实现图片文件新增到数据库
Luffe船长
javalayuispring
项目场景:layui+javaspring实现图片文件新增到数据库解决方案:1.首先layui是个不再更新的网址有想了解的可以浏览官网表格组件table-Layui文档2.官网内有专门的组件代码直接粘过来即可Demo单图片上传多图片上传预览图:layui.use(function(){varupload=layui.upload;varlayer=layui.layer;varelement=la
- 你真的需要微服务?
whyreal
原文我们已经设计和构建了十多年的软件,大部分时间我们一直在使用优秀的Symfony框架来实现这一目标。Symfony是一个传统的PHP组件集,受JavaSpring的启发,我们发现它非常适合作为我们的企业Web应用程序和数字产品的快速开发。然而,去年发布的Symfony4代表了该框架的重点逐渐变化;趋向于微服务方法,这种方法在过去几年中越来越受欢迎。为了说明这种转变,新版本宣称“微服务优先”,Sy
- 【JavaSpring】Aop的通知类型,获取数据
岩塘
JavaSpringjava前端开发语言
AOP通知描述了抽取的共性功能,根据共性功能抽取的位置不同,最终运行代码时要将其加入到合理的位置前置通知@Pointcut("execution(voidorg.example.dao.BookDao.update())")privatevoidpt(){}@Before("pt()")publicvoidbefore(){System.out.println("beforeadvice");}后
- 【JavaSpring】Aop案例
岩塘
java开发语言
测定接口执行效率描述:在接口执行前输出当前系统时间开发模式:XMLor注解思路分析:1.导入坐标(pom.xml)org.aspectjaspectjweaver1.9.4org.springframeworkspring-context5.2.25.RELEASEjunitjunit3.8.1test2.制作连接点的方法(原始操作)packageorg.example.dao;publicint
- 【JavaSpring】Aop切入点表达式
岩塘
java开发语言
语法格式切入点:要进行增强的方法切入点表达式:要进行增强的方法的描述方式标准格式:动作关键词(访问修饰符【可省略】返回值包名.类名.方法名(参数)异常名【可省略】)描述方法一(描述接口)execution("execution(voidorg.example.dao.BookDao.update())")描述方法二(描述实现类)execution("execution(voidorg.exampl
- 计算机专业毕业设计项目推荐06-工作室管理系统(Java+Vue+Mysql)
一个小肥羊
课程设计javavue.js
工作室管理系统(JavaSpring+Vue+Mysql)**介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式**介绍本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及模式,在编写的过程中可以说几乎是参照毕业设计目录样式来进行的.博主分享的基本都是自己接触
- 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独立出来,数据持