- ClassNotFoundException: com.alibaba.spring.beans.factory.annotation.AnnotationInjectedBeanPostProces
驜鸈
java服务器
最近在搞seata相关的项目。在跑官方seata-dubbo的官方demo时启动服务老是报标题这个错,上网搜总是说引入下面的依赖就可以了com.alibaba.springspring-context-support1.0.2emmmm引入1.0.2好像也么什么用!!!!!!!!!最后在不懈的百度下原来要引入1.0.11版本emmmmcom.alibaba.springspring-context
- SpringBoot整合DeepSeek技术指南(2025版)
hjy1821
AI人工智能
SpringBoot整合DeepSeek技术指南(2025版)环境准备com.deepseekdeepseek-java-sdk2.5.0org.springframework.bootspring-boot-starter-webflux配置中心设置#application.ymldeepseek:api:base-url:https://api.deepseek.com/v2token:${D
- Android Binder 用法详解
令狐掌门
Android开发笔记androidbinderAndroidBinder
Binder是Android系统中的一种进程间通信(IPC)机制,它允许不同进程之间进行高效通信。Binder在Android系统中被广泛使用,例如在Activity与Service的交互中。Binder的基本组成实现Binder通信通常包含以下几个关键部分:AIDL接口定义:通过AndroidInterfaceDefinitionLanguage定义接口服务端实现:实现AIDL接口并在Servi
- win10 安装WSL ubuntu20、配置git问题及解决记录
YANGM
gitubuntulinux
1WslRegisterDistributionfailedwitherror:0x800701bc问题问题现象如下图:处理方式有两种:1)切换使用WSL1,在windows命令输入wsl命令:wsl--set-default-version12)安装新内核,内核没有升级,前往微软WSL官网下载安装适用于x64计算机的最新WSL2Linux内核更新包即可。下载链接:https://wslstore
- ReactNative组件详解
Code4Android
编程语言androidiosreact-native
ReactNative学习记录传送门ReactNative核心思想就是组件化,它基于前端框架React,在我们使用其开发Android和iOS的时候,共用一套组件即一套代码,增加了代码复用性。今天的这篇文章不不分析过多的知识点,主要介绍如下内容:如何进行自定义组件如何使用自定义组件组件的生命周期自定义组件ReactNative中我们实现的UI都是有组件组成的,但是有时候为了实现我们想要的效果,并且
- Java基础之JVM对象内存分配机制简介
aoneword
JVM基础jvmjava开发语言
一对象内存分配1.1运行时数据区域1.2常见java应用启动JVM参数:-Xss:每个线程的栈大小(单位kb)-Xms:堆的初始大小,默认物理内存的1/64,示例:-Xms:4g-Xms:10m-Xmx:堆的最大可用大小,默认物理内存的1/4-Xmn:新生代大小-XX:NewRatio:默认2,表示新生代占老年代的1/2,占整个堆内存的1/3-XX:SurvivorRatio:默认8,表示一个su
- IDEA编写JAVA的常用快捷键
峥嵘轻稠
intellij-ideajavaintellijidea
(摘要:这是我平常使用IDEA的快捷键,希望能帮到和我一样刚入门的小白~~创作不易,希望能得到点赞关注支持嘿嘿嘿~~~)Ctrl+A:全选Ctrl+Z:撤销Ctrl+X:剪切Ctrl+C:复制Ctrl+V:粘贴Ctrl+Y:删除当前行Ctrl+D:复制当前行到下一行Ctrl+O:选择可重写的方法Ctrl+I:重写接口方法Ctrl+/:快速单行注释Ctrl+Shift+/:快速多行注释Ctrl+Al
- JAVA多线程详解(超详细)
m0_74823434
面试学习路线阿里巴巴资料职业发展javapython开发语言后端
目录一、线程简介1、进程、线程2、并发、并行、串行3、进程的三态二、线程实现1、继承Thread类2、实现Runnable接口3、实现Callable接口(不常用)三、线程常用方法1、线程的状态2、线程常用方法四、多线程1、守护(Deamon)线程2、多线程并发与同步3、死锁4、Lock(锁)5、线程协作6、线程池一、线程简介1、进程、线程程序:开发写的代码称之为程序。程序就是一堆代码,一组数据和
- 使用react-native-vector-icons
孟宪磊mxl
reactnativereact.jsjavascript
ReactNativeVectorIcons是一个在GitHub上非常受欢迎的ReactNative图标库。它提供了许多常见的图标集,如FontAwesome和Ionicons等。使用这个库可以简化在ReactNative项目中使用图标的过程。一、安装npminstallreact-native-vector-icons二、配置环境(android)1.打开android/app/build.gr
- 探秘【Orion-Visor】:打造高效运维的新纪元
许煦津
探秘【Orion-Visor】:打造高效运维的新纪元去发现同类优质开源项目:https://gitcode.com/在数字化转型的浪潮中,运维管理的智能化与用户体验的提升成为了新一代系统开发的关键。今天,我们向您隆重介绍一款名为Orion-Visor的高颜值智能运维&轻量级堡垒机平台,它以现代设计和强大功能,重新定义了服务器运维的标准。项目介绍Orion-Visor,以其简洁直观的界面和丰富实用的
- ReactNative fetch源码分析
郝捷Laxus
ReactNative
原生分析的是安卓端核心代码//react-native/vendor/core/wehatwg-fetch.jsself.fetch=function(input,init){returnnewPromise(function(resolve,reject){varrequest=newRequest(input,init);varxhr=newXMLHttpRequest();xhr.onloa
- ORA-39002 ORA-39070 ORA-29283 ORA-06512 ORA-29283 错误处理
夜光小兔纸
运维数据库Oracleoracle数据库运维
一、问题描述在执行EXPDP导出时候报如下错误:[oracle@localhost]$expdprui/ruiDIRECTORY=dmp_dirdumpfile=studyfull_expdp.dmpFULL=ylogfile=studyfullexpdp.logjob_name=expdp_jobExport:Release11.2.0.4.0-ProductiononMonFeb2410:18
- linux iostat 命令详解
夜光小兔纸
Linuxlinux运维服务器
iostat主要用于监控系统设备的IO负载情况,iostat提供了丰富的参数给我们查询各种维度的io数据,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。一、命令相关参数命令使用:iostat[-c][-d][-N][-n][-h][-k|-m][-t][-V][-x][-y][
- docker-compose部署开源堡垒机Orion-Visor——筑梦之路
筑梦之路
linux系统运维docker容器运维
gitclone--depth=1https://github.com/dromara/orion-visorcdorion-visordockercomposepull#配置,此处我保持默认cp.env.example.env#启动进行数据库初始化dockercomposeup-d#访问http://[ip]:8081进行登陆Adminer#依次导入这些初始化sqlorion-visor/sql
- 后端java的复习-常用API(个人笔记)
狴犴ys
java基础后端技术栈巩固复习java
常用apiObjecttoString方法equals方法finalize方法clone()方法SystemString构造方法常用方法获取型判断型转换型StringBuffer与StringBuilder八种基本数据类型包装类八种包装类IntegerDate获取系统当前时间Date->StringString->DateCalendar(日历)介绍常用方法匿名内部类ObjecttoString方
- 分布式与微服务区别?
明天更新
面试题SpringCloudAlibaba分布式微服务架构
1、概念角度:分布式:把多个应用部署到多台服务器(云)上,多个应用之间相互协作,提高系统的扩展性和稳定性。微服务:是分布式的一种实现方式。2、粒度划分:分布式:服务划分粒度可大可小,服务之间的耦合度不如微服务极致。微服务:粒度划分更小,专注业务进行划分(可以将某个接口作为一个应用,例如:下单)3、目标:分布式:注重解决存储和扩展问题,通过负载均衡提升系统的稳定性。微服务:简化开发流程,迭代频次更高
- 指针高级03【void类型的指针】-黑马程序员C语言
c
没有类型的指针特点:无法获取数据,无法计算,但是可以接收任意地址。不同类型的指针之间,是不能相互赋值的void类型指针打破上面的观点优点:void没有任何类型,好处是可以接收任意类型指针记录的内存地址缺点:void类型的指针,无法获取变量里面的数据,也不能进行加、减的运算#include"stdio.h"voidswap(void*a,void*b,intlen);intmain(){inta=1
- jQuery获取并解析API接口Json数据的方法
qhdzj87
前端(JSjQuery等)jqueryjsonjavascript
json是API的常用数据交换格式,在Web开发中,除了后端程序,前端也可以借助JavaScript技术获取并解析API中的json数据,这里介绍一种通过jQuery的$get()函数获取并解析API接口Json数据的方法。其基本语法如下:$get(url,[data],[callback])在$get()函数中,包含了三个参数。其中:url:请求的地址;data:请求数据的列表;callback
- TensorFlow框架介绍
Leo_WHU
tensorflow人工智能python
一、TF数据流图1.TensorFlow结构分析一个构件图阶段流程图:定义数据(张量tensor)和操作(operation)一个执行图阶段调用各方资源,讲讲定义好的数据和操作运行起来2.数据流图TensorFlowTesnsor-张量-数据Flow-流动3.图与tensorboard3.1什么是图结构图结构:数据+操作3.2图相关操作3.2.1默认图查看默认图的方法1)调用方法用tf.get_d
- fastadmin 微信小程序退款流程
bilichen006
微信小程序小程序
一、先登录微信商户平台,下载好认证文件cert,把cert里面的key.pem和cert.pem上传到宝塔服务器文件public上新建一个cert里面二、在order.js文件中,修改api函数api:{bindevent:function(){//Form.api.bindevent($("form[role=form]"));Form.api.bindevent($("form[role=fo
- php-tp5-fastadmin开发H5页面,以微信公众号授权,进行JSAPI支付流程
bilichen006
小例子phpfastadmintp5公众号支付JSAPI
技术要点(具体开发代码,在(公正年报H5)中实现1、申请好公众号,获取AppID(公众号ID)AppSecret(公众号密钥)2、申请微信支付账户,获取(商户号)和(密钥)3、在微信支付账户中绑定公众号,然后在公众号中同意授权绑定,使两者产生关联代码实现一、h5页面,调用方法获取codepublicfunctiongetGzhCode(){$appid='xxx';//公众号appid$redir
- 【pyOCR】
星星向前看
python
pyOCR是什么pyOCR,全称PythonOpticalCharacterRecognition,是一个Python库,用于文本识别。它集成了多个OCR(光学字符识别)引擎,包括Tesseract、OCRopus等,让开发者能够方便地进行文本识别操作。pyOCR支持多种格式的文档,如PDF、JPEG、PNG等,并能够识别多种语言的文本。使用pyOCR,开发者可以轻松地将图片中的文字转换为机器可处
- 基于Pygame的游戏制作
CAICAI134
pygame
一、pygame的窗口制作开发坏境是vscode1.43.0python版本是3.7.6代码importpygamefrompygame.localsimport*importsysdefhello_world():pygame.init()pygame.display.set_mode((640,480))pygame.display.set_caption(“helloworld”)while
- 如何使用Java爬虫处理API接口返回的JSON数据?
小爬虫程序猿
APIjavajson开发语言
处理API接口返回的JSON数据是Java爬虫开发中的一个常见任务。在Java中,有多个库可以帮助我们解析JSON数据,其中最流行的是Jackson和Gson。以下是使用这两个库处理JSON数据的基本步骤和示例代码。使用Jackson处理JSONJackson是一个功能强大的JSON处理库,它不仅可以将JSON字符串解析为Java对象,还可以将Java对象转换为JSON字符串。添加Jackson依
- HarmonyOS NEXT 创新能力解读
码牛程序猿
鸿蒙工程师鸿蒙HarmonyOSharmonyos华为鸿蒙应用开发OpenHarmony鸿蒙鸿蒙系统鸿蒙开发
IDE工具层面DevEcoStudio作为专门用于开发鸿蒙操作系统(HarmonyOS)的应用程序的集成开发环境(IDE),提供一个清晰、直观的用户界面,使得开发人员可以更容易地进行编码、调试和测试我们的应用。新的版本里,在调试和测试方面做了很大的提升,尤其对NDK,使用C或者C++语言实现应用的关键功能的开发项目,在跨语言调用上,不管ArkTS调用C和C++,还是反过来在C和C++上调用ArkT
- 粒子代码模块
倾听醉梦语
表白html
粒子特效body{margin:0;overflow:hidden;background:#000;}canvas{position:absolute;top:0;left:0;width:100%;height:100%;}import*asTHREEfrom"https://cdn.skypack.dev/three@0.136.0";import{OrbitControls}from"htt
- Spring Cache缓存注解深度解析
coder lei
spring缓存java
SpringCache缓存注解深度解析一、框架概述SpringCache是Spring框架提供的抽象缓存层,通过注解实现声明式缓存,与具体缓存实现(如Redis、Ehcache)解耦。核心接口CacheManager负责管理不同缓存,@EnableCaching开启注解驱动。二、核心注解详解1.@Cacheable作用:方法结果缓存,首次调用后缓存结果关键参数:@Cacheable(value="
- 凤凰架构:构建可靠的大型分布式系统
邱燕义
凤凰架构:构建可靠的大型分布式系统【下载地址】凤凰架构构建可靠的大型分布式系统凤凰架构:构建可靠的大型分布式系统项目地址:https://gitcode.com/Open-source-documentation-tutorial/7e46b项目介绍在当今数字化时代,大型分布式系统已成为企业级应用的核心。然而,构建一个既可靠又高效的分布式系统并非易事。为了帮助开发者、架构师和系统工程师应对这一挑战
- 【硬件基础】以太网口的类型,接口定义
月阳羊
硬件基础电路知识网络嵌入式硬件
目录1、RJ45型网线插头(水晶头)2、接线标准1、RJ45型网线插头(水晶头)外观特点:这是最常见的以太网接口类型,外观类似电话接口,但尺寸更大。它有8个引脚,采用模块化设计,方便插拔。应用场景:广泛应用于计算机、路由器、交换机、网络摄像头等设备,用于连接局域网(LAN)和广域网(WAN)。引脚定义:RJ-45接口有8个引脚,每个引脚都有特定的功能。在不同的以太网标准中,引脚的使用情况有所不同。
- Composer install 报错
要加油呀
问题整理composerphp
Composerinstall报错项目构建命令:composerinstall--no-dev--no-interaction-o--ignore-platform-reqs构建输出:没有错误,陷入死循环>Illuminate\Foundation\ComposerScripts::postAutoloadDump>@phpartisanpackage:discover--ansiDiscover
- 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独立出来,数据持